Home | History | Annotate | Line # | Download | only in import
      1 /* This file is automatically generated.  DO NOT EDIT! */
      2 /* Generated from: NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp  */
      3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
      4 
      5 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
      6 /* A GNU-like <stdlib.h>.
      7 
      8    Copyright (C) 1995, 2001-2004, 2006-2022 Free Software Foundation, Inc.
      9 
     10    This file is free software: you can redistribute it and/or modify
     11    it under the terms of the GNU Lesser General Public License as
     12    published by the Free Software Foundation; either version 2.1 of the
     13    License, or (at your option) any later version.
     14 
     15    This file is distributed in the hope that it will be useful,
     16    but WITHOUT ANY WARRANTY; without even the implied warranty of
     17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     18    GNU Lesser General Public License for more details.
     19 
     20    You should have received a copy of the GNU Lesser General Public License
     21    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
     22 
     23 #if __GNUC__ >= 3
     24 #pragma GCC system_header
     25 #endif
     26 
     27 
     28 #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
     29 /* Special invocation conventions inside some gnulib header files,
     30    and inside some glibc header files, respectively.  */
     31 
     32 #include_next <stdlib.h>
     33 
     34 #else
     35 /* Normal invocation convention.  */
     36 
     37 #ifndef _GL_STDLIB_H
     38 
     39 /* The include_next requires a split double-inclusion guard.  */
     40 #include_next <stdlib.h>
     41 
     42 #ifndef _GL_STDLIB_H
     43 #define _GL_STDLIB_H
     44 
     45 /* NetBSD 5.0 mis-defines NULL.  */
     46 #include <stddef.h>
     47 
     48 /* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>.  */
     49 #if 0 && !defined WEXITSTATUS
     50 # include <sys/wait.h>
     51 #endif
     52 
     53 /* Solaris declares getloadavg() in <sys/loadavg.h>.  */
     54 #if (0 || defined GNULIB_POSIXCHECK) && 0
     55 /* OpenIndiana has a bug: <sys/time.h> must be included before
     56    <sys/loadavg.h>.  */
     57 # include <sys/time.h>
     58 # include <sys/loadavg.h>
     59 #endif
     60 
     61 /* Native Windows platforms declare _mktemp() in <io.h>.  */
     62 #if defined _WIN32 && !defined __CYGWIN__
     63 # include <io.h>
     64 #endif
     65 
     66 #if 0
     67 
     68 /* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
     69    from <stdlib.h> if _REENTRANT is defined.  Include it whenever we need
     70    'struct random_data'.  */
     71 # if 1
     72 #  include <random.h>
     73 # endif
     74 
     75 # if !1 || 0 || !1
     76 #  include <stdint.h>
     77 # endif
     78 
     79 # if !1
     80 /* Define 'struct random_data'.
     81    But allow multiple gnulib generated <stdlib.h> replacements to coexist.  */
     82 #  if !GNULIB_defined_struct_random_data
     83 struct random_data
     84 {
     85   int32_t *fptr;                /* Front pointer.  */
     86   int32_t *rptr;                /* Rear pointer.  */
     87   int32_t *state;               /* Array of state values.  */
     88   int rand_type;                /* Type of random number generator.  */
     89   int rand_deg;                 /* Degree of random number generator.  */
     90   int rand_sep;                 /* Distance between front and rear.  */
     91   int32_t *end_ptr;             /* Pointer behind state table.  */
     92 };
     93 #   define GNULIB_defined_struct_random_data 1
     94 #  endif
     95 # endif
     96 #endif
     97 
     98 #if (0 || 0 || 1 || 0 || 0 || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__)
     99 /* On Mac OS X 10.3, only <unistd.h> declares mkstemp.  */
    100 /* On Mac OS X 10.5, only <unistd.h> declares mkstemps.  */
    101 /* On Mac OS X 10.13, only <unistd.h> declares mkostemp and mkostemps.  */
    102 /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt.  */
    103 /* But avoid namespace pollution on glibc systems and native Windows.  */
    104 # include <unistd.h>
    105 #endif
    106 
    107 /* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
    108    that can be freed by passing them as the Ith argument to the
    109    function F.  */
    110 #ifndef _GL_ATTRIBUTE_DEALLOC
    111 # if __GNUC__ >= 11
    112 #  define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
    113 # else
    114 #  define _GL_ATTRIBUTE_DEALLOC(f, i)
    115 # endif
    116 #endif
    117 
    118 /* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
    119    can be freed via 'free'; it can be used only after declaring 'free'.  */
    120 /* Applies to: functions.  Cannot be used on inline functions.  */
    121 #ifndef _GL_ATTRIBUTE_DEALLOC_FREE
    122 # define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
    123 #endif
    124 
    125 /* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
    126    allocated memory.  */
    127 /* Applies to: functions.  */
    128 #ifndef _GL_ATTRIBUTE_MALLOC
    129 # if __GNUC__ >= 3 || defined __clang__
    130 #  define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
    131 # else
    132 #  define _GL_ATTRIBUTE_MALLOC
    133 # endif
    134 #endif
    135 
    136 /* The __attribute__ feature is available in gcc versions 2.5 and later.
    137    The attribute __pure__ was added in gcc 2.96.  */
    138 #ifndef _GL_ATTRIBUTE_PURE
    139 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__
    140 #  define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
    141 # else
    142 #  define _GL_ATTRIBUTE_PURE /* empty */
    143 # endif
    144 #endif
    145 
    146 /* The definition of _Noreturn is copied here.  */
    147 /* A C macro for declaring that a function does not return.
    148    Copyright (C) 2011-2022 Free Software Foundation, Inc.
    149 
    150    This program is free software: you can redistribute it and/or modify it
    151    under the terms of the GNU Lesser General Public License as published
    152    by the Free Software Foundation; either version 2 of the License, or
    153    (at your option) any later version.
    154 
    155    This program is distributed in the hope that it will be useful,
    156    but WITHOUT ANY WARRANTY; without even the implied warranty of
    157    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    158    Lesser General Public License for more details.
    159 
    160    You should have received a copy of the GNU Lesser General Public License
    161    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    162 
    163 #ifndef _Noreturn
    164 # if (defined __cplusplus \
    165       && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
    166           || (defined _MSC_VER && 1900 <= _MSC_VER)) \
    167       && 0)
    168     /* [[noreturn]] is not practically usable, because with it the syntax
    169          extern _Noreturn void func (...);
    170        would not be valid; such a declaration would only be valid with 'extern'
    171        and '_Noreturn' swapped, or without the 'extern' keyword.  However, some
    172        AIX system header files and several gnulib header files use precisely
    173        this syntax with 'extern'.  */
    174 #  define _Noreturn [[noreturn]]
    175 # elif ((!defined __cplusplus || defined __clang__) \
    176         && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
    177             || (!defined __STRICT_ANSI__ \
    178                 && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \
    179                     || (defined __apple_build_version__ \
    180                         ? 6000000 <= __apple_build_version__ \
    181                         : 3 < __clang_major__ + (5 <= __clang_minor__))))))
    182    /* _Noreturn works as-is.  */
    183 # elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \
    184         || 0x5110 <= __SUNPRO_C)
    185 #  define _Noreturn __attribute__ ((__noreturn__))
    186 # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
    187 #  define _Noreturn __declspec (noreturn)
    188 # else
    189 #  define _Noreturn
    190 # endif
    191 #endif
    192 
    193 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
    194 /* C++ compatible function declaration macros.
    195    Copyright (C) 2010-2022 Free Software Foundation, Inc.
    196 
    197    This program is free software: you can redistribute it and/or modify it
    198    under the terms of the GNU Lesser General Public License as published
    199    by the Free Software Foundation; either version 2 of the License, or
    200    (at your option) any later version.
    201 
    202    This program is distributed in the hope that it will be useful,
    203    but WITHOUT ANY WARRANTY; without even the implied warranty of
    204    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    205    Lesser General Public License for more details.
    206 
    207    You should have received a copy of the GNU Lesser General Public License
    208    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    209 
    210 #ifndef _GL_CXXDEFS_H
    211 #define _GL_CXXDEFS_H
    212 
    213 /* Begin/end the GNULIB_NAMESPACE namespace.  */
    214 #if defined __cplusplus && defined GNULIB_NAMESPACE
    215 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE {
    216 # define _GL_END_NAMESPACE }
    217 #else
    218 # define _GL_BEGIN_NAMESPACE
    219 # define _GL_END_NAMESPACE
    220 #endif
    221 
    222 /* The three most frequent use cases of these macros are:
    223 
    224    * For providing a substitute for a function that is missing on some
    225      platforms, but is declared and works fine on the platforms on which
    226      it exists:
    227 
    228        #if @GNULIB_FOO@
    229        # if !@HAVE_FOO@
    230        _GL_FUNCDECL_SYS (foo, ...);
    231        # endif
    232        _GL_CXXALIAS_SYS (foo, ...);
    233        _GL_CXXALIASWARN (foo);
    234        #elif defined GNULIB_POSIXCHECK
    235        ...
    236        #endif
    237 
    238    * For providing a replacement for a function that exists on all platforms,
    239      but is broken/insufficient and needs to be replaced on some platforms:
    240 
    241        #if @GNULIB_FOO@
    242        # if @REPLACE_FOO@
    243        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    244        #   undef foo
    245        #   define foo rpl_foo
    246        #  endif
    247        _GL_FUNCDECL_RPL (foo, ...);
    248        _GL_CXXALIAS_RPL (foo, ...);
    249        # else
    250        _GL_CXXALIAS_SYS (foo, ...);
    251        # endif
    252        _GL_CXXALIASWARN (foo);
    253        #elif defined GNULIB_POSIXCHECK
    254        ...
    255        #endif
    256 
    257    * For providing a replacement for a function that exists on some platforms
    258      but is broken/insufficient and needs to be replaced on some of them and
    259      is additionally either missing or undeclared on some other platforms:
    260 
    261        #if @GNULIB_FOO@
    262        # if @REPLACE_FOO@
    263        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    264        #   undef foo
    265        #   define foo rpl_foo
    266        #  endif
    267        _GL_FUNCDECL_RPL (foo, ...);
    268        _GL_CXXALIAS_RPL (foo, ...);
    269        # else
    270        #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
    271        _GL_FUNCDECL_SYS (foo, ...);
    272        #  endif
    273        _GL_CXXALIAS_SYS (foo, ...);
    274        # endif
    275        _GL_CXXALIASWARN (foo);
    276        #elif defined GNULIB_POSIXCHECK
    277        ...
    278        #endif
    279 */
    280 
    281 /* _GL_EXTERN_C declaration;
    282    performs the declaration with C linkage.  */
    283 #if defined __cplusplus
    284 # define _GL_EXTERN_C extern "C"
    285 #else
    286 # define _GL_EXTERN_C extern
    287 #endif
    288 
    289 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
    290    declares a replacement function, named rpl_func, with the given prototype,
    291    consisting of return type, parameters, and attributes.
    292    Example:
    293      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
    294                                   _GL_ARG_NONNULL ((1)));
    295  */
    296 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
    297   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
    298 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
    299   _GL_EXTERN_C rettype rpl_func parameters_and_attributes
    300 
    301 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
    302    declares the system function, named func, with the given prototype,
    303    consisting of return type, parameters, and attributes.
    304    Example:
    305      _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
    306                                   _GL_ARG_NONNULL ((1)));
    307  */
    308 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
    309   _GL_EXTERN_C rettype func parameters_and_attributes
    310 
    311 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
    312    declares a C++ alias called GNULIB_NAMESPACE::func
    313    that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
    314    Example:
    315      _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
    316 
    317    Wrapping rpl_func in an object with an inline conversion operator
    318    avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is
    319    actually used in the program.  */
    320 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
    321   _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
    322 #if defined __cplusplus && defined GNULIB_NAMESPACE
    323 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    324     namespace GNULIB_NAMESPACE                                \
    325     {                                                         \
    326       static const struct _gl_ ## func ## _wrapper            \
    327       {                                                       \
    328         typedef rettype (*type) parameters;                   \
    329                                                               \
    330         inline operator type () const                         \
    331         {                                                     \
    332           return ::rpl_func;                                  \
    333         }                                                     \
    334       } func = {};                                            \
    335     }                                                         \
    336     _GL_EXTERN_C int _gl_cxxalias_dummy
    337 #else
    338 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    339     _GL_EXTERN_C int _gl_cxxalias_dummy
    340 #endif
    341 
    342 /* _GL_CXXALIAS_MDA (func, rettype, parameters);
    343    is to be used when func is a Microsoft deprecated alias, on native Windows.
    344    It declares a C++ alias called GNULIB_NAMESPACE::func
    345    that redirects to _func, if GNULIB_NAMESPACE is defined.
    346    Example:
    347      _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...));
    348  */
    349 #define _GL_CXXALIAS_MDA(func,rettype,parameters) \
    350   _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters)
    351 
    352 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
    353    is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
    354    except that the C function rpl_func may have a slightly different
    355    declaration.  A cast is used to silence the "invalid conversion" error
    356    that would otherwise occur.  */
    357 #if defined __cplusplus && defined GNULIB_NAMESPACE
    358 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    359     namespace GNULIB_NAMESPACE                                     \
    360     {                                                              \
    361       static const struct _gl_ ## func ## _wrapper                 \
    362       {                                                            \
    363         typedef rettype (*type) parameters;                        \
    364                                                                    \
    365         inline operator type () const                              \
    366         {                                                          \
    367           return reinterpret_cast<type>(::rpl_func);               \
    368         }                                                          \
    369       } func = {};                                                 \
    370     }                                                              \
    371     _GL_EXTERN_C int _gl_cxxalias_dummy
    372 #else
    373 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    374     _GL_EXTERN_C int _gl_cxxalias_dummy
    375 #endif
    376 
    377 /* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters);
    378    is like  _GL_CXXALIAS_MDA (func, rettype, parameters);
    379    except that the C function func may have a slightly different declaration.
    380    A cast is used to silence the "invalid conversion" error that would
    381    otherwise occur.  */
    382 #define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \
    383   _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters)
    384 
    385 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
    386    declares a C++ alias called GNULIB_NAMESPACE::func
    387    that redirects to the system provided function func, if GNULIB_NAMESPACE
    388    is defined.
    389    Example:
    390      _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
    391 
    392    Wrapping func in an object with an inline conversion operator
    393    avoids a reference to func unless GNULIB_NAMESPACE::func is
    394    actually used in the program.  */
    395 #if defined __cplusplus && defined GNULIB_NAMESPACE
    396 # define _GL_CXXALIAS_SYS(func,rettype,parameters)            \
    397     namespace GNULIB_NAMESPACE                                \
    398     {                                                         \
    399       static const struct _gl_ ## func ## _wrapper            \
    400       {                                                       \
    401         typedef rettype (*type) parameters;                   \
    402                                                               \
    403         inline operator type () const                         \
    404         {                                                     \
    405           return ::func;                                      \
    406         }                                                     \
    407       } func = {};                                            \
    408     }                                                         \
    409     _GL_EXTERN_C int _gl_cxxalias_dummy
    410 #else
    411 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
    412     _GL_EXTERN_C int _gl_cxxalias_dummy
    413 #endif
    414 
    415 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
    416    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    417    except that the C function func may have a slightly different declaration.
    418    A cast is used to silence the "invalid conversion" error that would
    419    otherwise occur.  */
    420 #if defined __cplusplus && defined GNULIB_NAMESPACE
    421 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    422     namespace GNULIB_NAMESPACE                          \
    423     {                                                   \
    424       static const struct _gl_ ## func ## _wrapper      \
    425       {                                                 \
    426         typedef rettype (*type) parameters;             \
    427                                                         \
    428         inline operator type () const                   \
    429         {                                               \
    430           return reinterpret_cast<type>(::func);        \
    431         }                                               \
    432       } func = {};                                      \
    433     }                                                   \
    434     _GL_EXTERN_C int _gl_cxxalias_dummy
    435 #else
    436 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    437     _GL_EXTERN_C int _gl_cxxalias_dummy
    438 #endif
    439 
    440 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
    441    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    442    except that the C function is picked among a set of overloaded functions,
    443    namely the one with rettype2 and parameters2.  Two consecutive casts
    444    are used to silence the "cannot find a match" and "invalid conversion"
    445    errors that would otherwise occur.  */
    446 #if defined __cplusplus && defined GNULIB_NAMESPACE
    447   /* The outer cast must be a reinterpret_cast.
    448      The inner cast: When the function is defined as a set of overloaded
    449      functions, it works as a static_cast<>, choosing the designated variant.
    450      When the function is defined as a single variant, it works as a
    451      reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
    452 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    453     namespace GNULIB_NAMESPACE                                                \
    454     {                                                                         \
    455       static const struct _gl_ ## func ## _wrapper                            \
    456       {                                                                       \
    457         typedef rettype (*type) parameters;                                   \
    458                                                                               \
    459         inline operator type () const                                         \
    460         {                                                                     \
    461           return reinterpret_cast<type>((rettype2 (*) parameters2)(::func));  \
    462         }                                                                     \
    463       } func = {};                                                            \
    464     }                                                                         \
    465     _GL_EXTERN_C int _gl_cxxalias_dummy
    466 #else
    467 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    468     _GL_EXTERN_C int _gl_cxxalias_dummy
    469 #endif
    470 
    471 /* _GL_CXXALIASWARN (func);
    472    causes a warning to be emitted when ::func is used but not when
    473    GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
    474    variants.  */
    475 #if defined __cplusplus && defined GNULIB_NAMESPACE
    476 # define _GL_CXXALIASWARN(func) \
    477    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
    478 # define _GL_CXXALIASWARN_1(func,namespace) \
    479    _GL_CXXALIASWARN_2 (func, namespace)
    480 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    481    we enable the warning only when not optimizing.  */
    482 # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
    483 #  define _GL_CXXALIASWARN_2(func,namespace) \
    484     _GL_WARN_ON_USE (func, \
    485                      "The symbol ::" #func " refers to the system function. " \
    486                      "Use " #namespace "::" #func " instead.")
    487 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    488 #  define _GL_CXXALIASWARN_2(func,namespace) \
    489      extern __typeof__ (func) func
    490 # else
    491 #  define _GL_CXXALIASWARN_2(func,namespace) \
    492      _GL_EXTERN_C int _gl_cxxalias_dummy
    493 # endif
    494 #else
    495 # define _GL_CXXALIASWARN(func) \
    496     _GL_EXTERN_C int _gl_cxxalias_dummy
    497 #endif
    498 
    499 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
    500    causes a warning to be emitted when the given overloaded variant of ::func
    501    is used but not when GNULIB_NAMESPACE::func is used.  */
    502 #if defined __cplusplus && defined GNULIB_NAMESPACE
    503 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    504    _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
    505                         GNULIB_NAMESPACE)
    506 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
    507    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
    508 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    509    we enable the warning only when not optimizing.  */
    510 # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
    511 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    512     _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \
    513                          "The symbol ::" #func " refers to the system function. " \
    514                          "Use " #namespace "::" #func " instead.")
    515 # else
    516 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    517      _GL_EXTERN_C int _gl_cxxalias_dummy
    518 # endif
    519 #else
    520 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    521     _GL_EXTERN_C int _gl_cxxalias_dummy
    522 #endif
    523 
    524 #endif /* _GL_CXXDEFS_H */
    525 
    526 /* The definition of _GL_ARG_NONNULL is copied here.  */
    527 /* A C macro for declaring that specific arguments must not be NULL.
    528    Copyright (C) 2009-2022 Free Software Foundation, Inc.
    529 
    530    This program is free software: you can redistribute it and/or modify it
    531    under the terms of the GNU Lesser General Public License as published
    532    by the Free Software Foundation; either version 2 of the License, or
    533    (at your option) any later version.
    534 
    535    This program is distributed in the hope that it will be useful,
    536    but WITHOUT ANY WARRANTY; without even the implied warranty of
    537    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    538    Lesser General Public License for more details.
    539 
    540    You should have received a copy of the GNU Lesser General Public License
    541    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    542 
    543 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
    544    that the values passed as arguments n, ..., m must be non-NULL pointers.
    545    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
    546 #ifndef _GL_ARG_NONNULL
    547 # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__
    548 #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
    549 # else
    550 #  define _GL_ARG_NONNULL(params)
    551 # endif
    552 #endif
    553 
    554 /* The definition of _GL_WARN_ON_USE is copied here.  */
    555 /* A C macro for emitting warnings if a function is used.
    556    Copyright (C) 2010-2022 Free Software Foundation, Inc.
    557 
    558    This program is free software: you can redistribute it and/or modify it
    559    under the terms of the GNU Lesser General Public License as published
    560    by the Free Software Foundation; either version 2 of the License, or
    561    (at your option) any later version.
    562 
    563    This program is distributed in the hope that it will be useful,
    564    but WITHOUT ANY WARRANTY; without even the implied warranty of
    565    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    566    Lesser General Public License for more details.
    567 
    568    You should have received a copy of the GNU Lesser General Public License
    569    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
    570 
    571 /* _GL_WARN_ON_USE (function, "literal string") issues a declaration
    572    for FUNCTION which will then trigger a compiler warning containing
    573    the text of "literal string" anywhere that function is called, if
    574    supported by the compiler.  If the compiler does not support this
    575    feature, the macro expands to an unused extern declaration.
    576 
    577    _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the
    578    attribute used in _GL_WARN_ON_USE.  If the compiler does not support
    579    this feature, it expands to empty.
    580 
    581    These macros are useful for marking a function as a potential
    582    portability trap, with the intent that "literal string" include
    583    instructions on the replacement function that should be used
    584    instead.
    585    _GL_WARN_ON_USE is for functions with 'extern' linkage.
    586    _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline'
    587    linkage.
    588 
    589    However, one of the reasons that a function is a portability trap is
    590    if it has the wrong signature.  Declaring FUNCTION with a different
    591    signature in C is a compilation error, so this macro must use the
    592    same type as any existing declaration so that programs that avoid
    593    the problematic FUNCTION do not fail to compile merely because they
    594    included a header that poisoned the function.  But this implies that
    595    _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already
    596    have a declaration.  Use of this macro implies that there must not
    597    be any other macro hiding the declaration of FUNCTION; but
    598    undefining FUNCTION first is part of the poisoning process anyway
    599    (although for symbols that are provided only via a macro, the result
    600    is a compilation error rather than a warning containing
    601    "literal string").  Also note that in C++, it is only safe to use if
    602    FUNCTION has no overloads.
    603 
    604    For an example, it is possible to poison 'getline' by:
    605    - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
    606      [getline]) in configure.ac, which potentially defines
    607      HAVE_RAW_DECL_GETLINE
    608    - adding this code to a header that wraps the system <stdio.h>:
    609      #undef getline
    610      #if HAVE_RAW_DECL_GETLINE
    611      _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
    612        "not universally present; use the gnulib module getline");
    613      #endif
    614 
    615    It is not possible to directly poison global variables.  But it is
    616    possible to write a wrapper accessor function, and poison that
    617    (less common usage, like &environ, will cause a compilation error
    618    rather than issue the nice warning, but the end result of informing
    619    the developer about their portability problem is still achieved):
    620      #if HAVE_RAW_DECL_ENVIRON
    621      static char ***
    622      rpl_environ (void) { return &environ; }
    623      _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
    624      # undef environ
    625      # define environ (*rpl_environ ())
    626      #endif
    627    or better (avoiding contradictory use of 'static' and 'extern'):
    628      #if HAVE_RAW_DECL_ENVIRON
    629      static char ***
    630      _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared")
    631      rpl_environ (void) { return &environ; }
    632      # undef environ
    633      # define environ (*rpl_environ ())
    634      #endif
    635    */
    636 #ifndef _GL_WARN_ON_USE
    637 
    638 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    639 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
    640 #  define _GL_WARN_ON_USE(function, message) \
    641 _GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message)))
    642 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
    643   __attribute__ ((__warning__ (message)))
    644 # elif __clang_major__ >= 4
    645 /* Another compiler attribute is available in clang.  */
    646 #  define _GL_WARN_ON_USE(function, message) \
    647 _GL_WARN_EXTERN_C __typeof__ (function) function \
    648   __attribute__ ((__diagnose_if__ (1, message, "warning")))
    649 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
    650   __attribute__ ((__diagnose_if__ (1, message, "warning")))
    651 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    652 /* Verify the existence of the function.  */
    653 #  define _GL_WARN_ON_USE(function, message) \
    654 _GL_WARN_EXTERN_C __typeof__ (function) function
    655 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
    656 # else /* Unsupported.  */
    657 #  define _GL_WARN_ON_USE(function, message) \
    658 _GL_WARN_EXTERN_C int _gl_warn_on_use
    659 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
    660 # endif
    661 #endif
    662 
    663 /* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message")
    664    is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the
    665    function is declared with the given prototype, consisting of return type,
    666    parameters, and attributes.
    667    This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
    668    not work in this case.  */
    669 #ifndef _GL_WARN_ON_USE_CXX
    670 # if !defined __cplusplus
    671 #  define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    672      _GL_WARN_ON_USE (function, msg)
    673 # else
    674 #  if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    675 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
    676 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    677 extern rettype_gcc function parameters_and_attributes \
    678   __attribute__ ((__warning__ (msg)))
    679 #  elif __clang_major__ >= 4
    680 /* Another compiler attribute is available in clang.  */
    681 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    682 extern rettype_clang function parameters_and_attributes \
    683   __attribute__ ((__diagnose_if__ (1, msg, "warning")))
    684 #  elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    685 /* Verify the existence of the function.  */
    686 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    687 extern rettype_gcc function parameters_and_attributes
    688 #  else /* Unsupported.  */
    689 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
    690 _GL_WARN_EXTERN_C int _gl_warn_on_use
    691 #  endif
    692 # endif
    693 #endif
    694 
    695 /* _GL_WARN_EXTERN_C declaration;
    696    performs the declaration with C linkage.  */
    697 #ifndef _GL_WARN_EXTERN_C
    698 # if defined __cplusplus
    699 #  define _GL_WARN_EXTERN_C extern "C"
    700 # else
    701 #  define _GL_WARN_EXTERN_C extern
    702 # endif
    703 #endif
    704 
    705 
    706 /* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
    707 #ifndef EXIT_SUCCESS
    708 # define EXIT_SUCCESS 0
    709 #endif
    710 /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
    711    with proper operation of xargs.  */
    712 #ifndef EXIT_FAILURE
    713 # define EXIT_FAILURE 1
    714 #elif EXIT_FAILURE != 1
    715 # undef EXIT_FAILURE
    716 # define EXIT_FAILURE 1
    717 #endif
    718 
    719 
    720 #if 0
    721 /* Terminate the current process with the given return code, without running
    722    the 'atexit' handlers.  */
    723 # if !1
    724 _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
    725 # endif
    726 _GL_CXXALIAS_SYS (_Exit, void, (int status));
    727 _GL_CXXALIASWARN (_Exit);
    728 #elif defined GNULIB_POSIXCHECK
    729 # undef _Exit
    730 # if HAVE_RAW_DECL__EXIT
    731 _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
    732                  "use gnulib module _Exit for portability");
    733 # endif
    734 #endif
    735 
    736 
    737 #if 1
    738 # if 1
    739 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    740 #   undef free
    741 #   define free rpl_free
    742 #  endif
    743 #  if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
    744 _GL_FUNCDECL_RPL (free, void, (void *ptr) throw ());
    745 #  else
    746 _GL_FUNCDECL_RPL (free, void, (void *ptr));
    747 #  endif
    748 _GL_CXXALIAS_RPL (free, void, (void *ptr));
    749 # else
    750 _GL_CXXALIAS_SYS (free, void, (void *ptr));
    751 # endif
    752 # if __GLIBC__ >= 2
    753 _GL_CXXALIASWARN (free);
    754 # endif
    755 #elif defined GNULIB_POSIXCHECK
    756 # undef free
    757 /* Assume free is always declared.  */
    758 _GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
    759                  "use gnulib module free for portability");
    760 #endif
    761 
    762 
    763 /* Allocate memory with indefinite extent and specified alignment.  */
    764 #if 0
    765 # if 0
    766 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    767 #   undef aligned_alloc
    768 #   define aligned_alloc rpl_aligned_alloc
    769 #  endif
    770 _GL_FUNCDECL_RPL (aligned_alloc, void *,
    771                   (size_t alignment, size_t size)
    772                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    773 _GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
    774 # else
    775 #  if 1
    776 #   if __GNUC__ >= 11
    777 /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free.  */
    778 _GL_FUNCDECL_SYS (aligned_alloc, void *,
    779                   (size_t alignment, size_t size)
    780                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    781 #   endif
    782 _GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size));
    783 #  endif
    784 # endif
    785 # if 1
    786 _GL_CXXALIASWARN (aligned_alloc);
    787 # endif
    788 #else
    789 # if 1 && __GNUC__ >= 11 && !defined aligned_alloc
    790 /* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free.  */
    791 _GL_FUNCDECL_SYS (aligned_alloc, void *,
    792                   (size_t alignment, size_t size)
    793                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    794 # endif
    795 # if defined GNULIB_POSIXCHECK
    796 #  undef aligned_alloc
    797 #  if HAVE_RAW_DECL_ALIGNED_ALLOC
    798 _GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - "
    799                  "use gnulib module aligned_alloc for portability");
    800 #  endif
    801 # endif
    802 #endif
    803 
    804 #if 0
    805 /* Parse a signed decimal integer.
    806    Returns the value of the integer.  Errors are not detected.  */
    807 # if !1
    808 _GL_FUNCDECL_SYS (atoll, long long, (const char *string)
    809                                     _GL_ATTRIBUTE_PURE
    810                                     _GL_ARG_NONNULL ((1)));
    811 # endif
    812 _GL_CXXALIAS_SYS (atoll, long long, (const char *string));
    813 _GL_CXXALIASWARN (atoll);
    814 #elif defined GNULIB_POSIXCHECK
    815 # undef atoll
    816 # if HAVE_RAW_DECL_ATOLL
    817 _GL_WARN_ON_USE (atoll, "atoll is unportable - "
    818                  "use gnulib module atoll for portability");
    819 # endif
    820 #endif
    821 
    822 #if 0
    823 # if (0 && 0) \
    824      || (0 && 0)
    825 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    826 #   undef calloc
    827 #   define calloc rpl_calloc
    828 #  endif
    829 _GL_FUNCDECL_RPL (calloc, void *,
    830                   (size_t nmemb, size_t size)
    831                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    832 _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
    833 # else
    834 #  if __GNUC__ >= 11
    835 /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free.  */
    836 _GL_FUNCDECL_SYS (calloc, void *,
    837                   (size_t nmemb, size_t size)
    838                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    839 #  endif
    840 _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
    841 # endif
    842 # if __GLIBC__ >= 2
    843 _GL_CXXALIASWARN (calloc);
    844 # endif
    845 #else
    846 # if 1 && __GNUC__ >= 11 && !defined calloc
    847 /* For -Wmismatched-dealloc: Associate calloc with free or rpl_free.  */
    848 _GL_FUNCDECL_SYS (calloc, void *,
    849                   (size_t nmemb, size_t size)
    850                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    851 # endif
    852 # if defined GNULIB_POSIXCHECK
    853 #  undef calloc
    854 /* Assume calloc is always declared.  */
    855 _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
    856                  "use gnulib module calloc-posix for portability");
    857 # endif
    858 #endif
    859 
    860 #if 1
    861 # if 0
    862 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    863 #   define canonicalize_file_name rpl_canonicalize_file_name
    864 #  endif
    865 _GL_FUNCDECL_RPL (canonicalize_file_name, char *,
    866                   (const char *name)
    867                   _GL_ARG_NONNULL ((1))
    868                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    869 _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
    870 # else
    871 #  if !0 || __GNUC__ >= 11
    872 _GL_FUNCDECL_SYS (canonicalize_file_name, char *,
    873                   (const char *name)
    874                   _GL_ARG_NONNULL ((1))
    875                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    876 #  endif
    877 _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
    878 # endif
    879 # ifndef GNULIB_defined_canonicalize_file_name
    880 #  define GNULIB_defined_canonicalize_file_name \
    881      (!0 || 0)
    882 # endif
    883 _GL_CXXALIASWARN (canonicalize_file_name);
    884 #else
    885 # if 1 && __GNUC__ >= 11 && !defined canonicalize_file_name
    886 /* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or
    887    rpl_free.  */
    888 _GL_FUNCDECL_SYS (canonicalize_file_name, char *,
    889                   (const char *name)
    890                   _GL_ARG_NONNULL ((1))
    891                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
    892 # endif
    893 # if defined GNULIB_POSIXCHECK
    894 #  undef canonicalize_file_name
    895 #  if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
    896 _GL_WARN_ON_USE (canonicalize_file_name,
    897                  "canonicalize_file_name is unportable - "
    898                  "use gnulib module canonicalize-lgpl for portability");
    899 #  endif
    900 # endif
    901 #endif
    902 
    903 #if 1
    904 /* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not
    905    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    906    platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have
    907    it.  */
    908 # if defined _WIN32 && !defined __CYGWIN__
    909 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    910 #   undef ecvt
    911 #   define ecvt _ecvt
    912 #  endif
    913 _GL_CXXALIAS_MDA (ecvt, char *,
    914                   (double number, int ndigits, int *decptp, int *signp));
    915 # else
    916 #  if 0
    917 _GL_CXXALIAS_SYS (ecvt, char *,
    918                   (double number, int ndigits, int *decptp, int *signp));
    919 #  endif
    920 # endif
    921 # if (defined _WIN32 && !defined __CYGWIN__) || 0
    922 _GL_CXXALIASWARN (ecvt);
    923 # endif
    924 #endif
    925 
    926 #if 1
    927 /* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not
    928    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    929    platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have
    930    it.  */
    931 # if defined _WIN32 && !defined __CYGWIN__
    932 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    933 #   undef fcvt
    934 #   define fcvt _fcvt
    935 #  endif
    936 _GL_CXXALIAS_MDA (fcvt, char *,
    937                   (double number, int ndigits, int *decptp, int *signp));
    938 # else
    939 #  if 0
    940 _GL_CXXALIAS_SYS (fcvt, char *,
    941                   (double number, int ndigits, int *decptp, int *signp));
    942 #  endif
    943 # endif
    944 # if (defined _WIN32 && !defined __CYGWIN__) || 0
    945 _GL_CXXALIASWARN (fcvt);
    946 # endif
    947 #endif
    948 
    949 #if 1
    950 /* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not
    951    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    952    platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have
    953    it.  */
    954 # if defined _WIN32 && !defined __CYGWIN__
    955 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    956 #   undef gcvt
    957 #   define gcvt _gcvt
    958 #  endif
    959 _GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf));
    960 # else
    961 #  if 0
    962 _GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf));
    963 #  endif
    964 # endif
    965 # if (defined _WIN32 && !defined __CYGWIN__) || 0
    966 _GL_CXXALIASWARN (gcvt);
    967 # endif
    968 #endif
    969 
    970 #if 0
    971 /* Store max(NELEM,3) load average numbers in LOADAVG[].
    972    The three numbers are the load average of the last 1 minute, the last 5
    973    minutes, and the last 15 minutes, respectively.
    974    LOADAVG is an array of NELEM numbers.  */
    975 # if !1
    976 _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem)
    977                                    _GL_ARG_NONNULL ((1)));
    978 # endif
    979 _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
    980 _GL_CXXALIASWARN (getloadavg);
    981 #elif defined GNULIB_POSIXCHECK
    982 # undef getloadavg
    983 # if HAVE_RAW_DECL_GETLOADAVG
    984 _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
    985                  "use gnulib module getloadavg for portability");
    986 # endif
    987 #endif
    988 
    989 #if 0
    990 /* Assuming *OPTIONP is a comma separated list of elements of the form
    991    "token" or "token=value", getsubopt parses the first of these elements.
    992    If the first element refers to a "token" that is member of the given
    993    NULL-terminated array of tokens:
    994      - It replaces the comma with a NUL byte, updates *OPTIONP to point past
    995        the first option and the comma, sets *VALUEP to the value of the
    996        element (or NULL if it doesn't contain an "=" sign),
    997      - It returns the index of the "token" in the given array of tokens.
    998    Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
    999    For more details see the POSIX specification.
   1000    https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */
   1001 # if !1
   1002 _GL_FUNCDECL_SYS (getsubopt, int,
   1003                   (char **optionp, char *const *tokens, char **valuep)
   1004                   _GL_ARG_NONNULL ((1, 2, 3)));
   1005 # endif
   1006 _GL_CXXALIAS_SYS (getsubopt, int,
   1007                   (char **optionp, char *const *tokens, char **valuep));
   1008 _GL_CXXALIASWARN (getsubopt);
   1009 #elif defined GNULIB_POSIXCHECK
   1010 # undef getsubopt
   1011 # if HAVE_RAW_DECL_GETSUBOPT
   1012 _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - "
   1013                  "use gnulib module getsubopt for portability");
   1014 # endif
   1015 #endif
   1016 
   1017 #if 0
   1018 /* Change the ownership and access permission of the slave side of the
   1019    pseudo-terminal whose master side is specified by FD.  */
   1020 # if !1
   1021 _GL_FUNCDECL_SYS (grantpt, int, (int fd));
   1022 # endif
   1023 _GL_CXXALIAS_SYS (grantpt, int, (int fd));
   1024 _GL_CXXALIASWARN (grantpt);
   1025 #elif defined GNULIB_POSIXCHECK
   1026 # undef grantpt
   1027 # if HAVE_RAW_DECL_GRANTPT
   1028 _GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
   1029                  "use gnulib module grantpt for portability");
   1030 # endif
   1031 #endif
   1032 
   1033 /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
   1034    rely on GNU or POSIX semantics for malloc and realloc (for example,
   1035    by never specifying a zero size), so it does not need malloc or
   1036    realloc to be redefined.  */
   1037 #if 1
   1038 # if (1 && 0) \
   1039      || (0 && 0)
   1040 #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
   1041         || _GL_USE_STDLIB_ALLOC)
   1042 #   undef malloc
   1043 #   define malloc rpl_malloc
   1044 #  endif
   1045 _GL_FUNCDECL_RPL (malloc, void *,
   1046                   (size_t size)
   1047                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
   1048 _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
   1049 # else
   1050 #  if __GNUC__ >= 11
   1051 /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free.  */
   1052 _GL_FUNCDECL_SYS (malloc, void *,
   1053                   (size_t size)
   1054                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
   1055 #  endif
   1056 _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
   1057 # endif
   1058 # if __GLIBC__ >= 2
   1059 _GL_CXXALIASWARN (malloc);
   1060 # endif
   1061 #else
   1062 # if 1 && __GNUC__ >= 11 && !defined malloc
   1063 /* For -Wmismatched-dealloc: Associate malloc with free or rpl_free.  */
   1064 _GL_FUNCDECL_SYS (malloc, void *,
   1065                   (size_t size)
   1066                   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
   1067 # endif
   1068 # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
   1069 #  undef malloc
   1070 /* Assume malloc is always declared.  */
   1071 _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
   1072                  "use gnulib module malloc-posix for portability");
   1073 # endif
   1074 #endif
   1075 
   1076 /* Convert a multibyte character to a wide character.  */
   1077 #if 1
   1078 # if 0
   1079 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1080 #   undef mbtowc
   1081 #   define mbtowc rpl_mbtowc
   1082 #  endif
   1083 _GL_FUNCDECL_RPL (mbtowc, int,
   1084                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
   1085 _GL_CXXALIAS_RPL (mbtowc, int,
   1086                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
   1087 # else
   1088 #  if !1
   1089 _GL_FUNCDECL_SYS (mbtowc, int,
   1090                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
   1091 #  endif
   1092 _GL_CXXALIAS_SYS (mbtowc, int,
   1093                   (wchar_t *restrict pwc, const char *restrict s, size_t n));
   1094 # endif
   1095 # if __GLIBC__ >= 2
   1096 _GL_CXXALIASWARN (mbtowc);
   1097 # endif
   1098 #elif defined GNULIB_POSIXCHECK
   1099 # undef mbtowc
   1100 # if HAVE_RAW_DECL_MBTOWC
   1101 _GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - "
   1102                  "use gnulib module mbtowc for portability");
   1103 # endif
   1104 #endif
   1105 
   1106 #if 1
   1107 /* Create a unique temporary directory from TEMPLATE.
   1108    The last six characters of TEMPLATE must be "XXXXXX";
   1109    they are replaced with a string that makes the directory name unique.
   1110    Returns TEMPLATE, or a null pointer if it cannot get a unique name.
   1111    The directory is created mode 700.  */
   1112 # if !1
   1113 _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1)));
   1114 # endif
   1115 _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/));
   1116 _GL_CXXALIASWARN (mkdtemp);
   1117 #elif defined GNULIB_POSIXCHECK
   1118 # undef mkdtemp
   1119 # if HAVE_RAW_DECL_MKDTEMP
   1120 _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
   1121                  "use gnulib module mkdtemp for portability");
   1122 # endif
   1123 #endif
   1124 
   1125 #if 1
   1126 /* Create a unique temporary file from TEMPLATE.
   1127    The last six characters of TEMPLATE must be "XXXXXX";
   1128    they are replaced with a string that makes the file name unique.
   1129    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
   1130    and O_TEXT, O_BINARY (defined in "binary-io.h").
   1131    The file is then created, with the specified flags, ensuring it didn't exist
   1132    before.
   1133    The file is created read-write (mask at least 0600 & ~umask), but it may be
   1134    world-readable and world-writable (mask 0666 & ~umask), depending on the
   1135    implementation.
   1136    Returns the open file descriptor if successful, otherwise -1 and errno
   1137    set.  */
   1138 # if !1
   1139 _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)
   1140                                  _GL_ARG_NONNULL ((1)));
   1141 # endif
   1142 _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
   1143 _GL_CXXALIASWARN (mkostemp);
   1144 #elif defined GNULIB_POSIXCHECK
   1145 # undef mkostemp
   1146 # if HAVE_RAW_DECL_MKOSTEMP
   1147 _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
   1148                  "use gnulib module mkostemp for portability");
   1149 # endif
   1150 #endif
   1151 
   1152 #if 0
   1153 /* Create a unique temporary file from TEMPLATE.
   1154    The last six characters of TEMPLATE before a suffix of length
   1155    SUFFIXLEN must be "XXXXXX";
   1156    they are replaced with a string that makes the file name unique.
   1157    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
   1158    and O_TEXT, O_BINARY (defined in "binary-io.h").
   1159    The file is then created, with the specified flags, ensuring it didn't exist
   1160    before.
   1161    The file is created read-write (mask at least 0600 & ~umask), but it may be
   1162    world-readable and world-writable (mask 0666 & ~umask), depending on the
   1163    implementation.
   1164    Returns the open file descriptor if successful, otherwise -1 and errno
   1165    set.  */
   1166 # if !1
   1167 _GL_FUNCDECL_SYS (mkostemps, int,
   1168                   (char * /*template*/, int /*suffixlen*/, int /*flags*/)
   1169                   _GL_ARG_NONNULL ((1)));
   1170 # endif
   1171 _GL_CXXALIAS_SYS (mkostemps, int,
   1172                   (char * /*template*/, int /*suffixlen*/, int /*flags*/));
   1173 _GL_CXXALIASWARN (mkostemps);
   1174 #elif defined GNULIB_POSIXCHECK
   1175 # undef mkostemps
   1176 # if HAVE_RAW_DECL_MKOSTEMPS
   1177 _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - "
   1178                  "use gnulib module mkostemps for portability");
   1179 # endif
   1180 #endif
   1181 
   1182 #if 0
   1183 /* Create a unique temporary file from TEMPLATE.
   1184    The last six characters of TEMPLATE must be "XXXXXX";
   1185    they are replaced with a string that makes the file name unique.
   1186    The file is then created, ensuring it didn't exist before.
   1187    The file is created read-write (mask at least 0600 & ~umask), but it may be
   1188    world-readable and world-writable (mask 0666 & ~umask), depending on the
   1189    implementation.
   1190    Returns the open file descriptor if successful, otherwise -1 and errno
   1191    set.  */
   1192 # if 0
   1193 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1194 #   define mkstemp rpl_mkstemp
   1195 #  endif
   1196 _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
   1197 _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/));
   1198 # else
   1199 #  if ! 1
   1200 _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
   1201 #  endif
   1202 _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/));
   1203 # endif
   1204 _GL_CXXALIASWARN (mkstemp);
   1205 #elif defined GNULIB_POSIXCHECK
   1206 # undef mkstemp
   1207 # if HAVE_RAW_DECL_MKSTEMP
   1208 _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - "
   1209                  "use gnulib module mkstemp for portability");
   1210 # endif
   1211 #endif
   1212 
   1213 #if 0
   1214 /* Create a unique temporary file from TEMPLATE.
   1215    The last six characters of TEMPLATE prior to a suffix of length
   1216    SUFFIXLEN must be "XXXXXX";
   1217    they are replaced with a string that makes the file name unique.
   1218    The file is then created, ensuring it didn't exist before.
   1219    The file is created read-write (mask at least 0600 & ~umask), but it may be
   1220    world-readable and world-writable (mask 0666 & ~umask), depending on the
   1221    implementation.
   1222    Returns the open file descriptor if successful, otherwise -1 and errno
   1223    set.  */
   1224 # if !1
   1225 _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)
   1226                                  _GL_ARG_NONNULL ((1)));
   1227 # endif
   1228 _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/));
   1229 _GL_CXXALIASWARN (mkstemps);
   1230 #elif defined GNULIB_POSIXCHECK
   1231 # undef mkstemps
   1232 # if HAVE_RAW_DECL_MKSTEMPS
   1233 _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
   1234                  "use gnulib module mkstemps for portability");
   1235 # endif
   1236 #endif
   1237 
   1238 #if 1
   1239 /* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not
   1240    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1241    platforms by defining GNULIB_NAMESPACE::mktemp always.  */
   1242 # if defined _WIN32 && !defined __CYGWIN__
   1243 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1244 #   undef mktemp
   1245 #   define mktemp _mktemp
   1246 #  endif
   1247 _GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/));
   1248 # else
   1249 _GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/));
   1250 # endif
   1251 _GL_CXXALIASWARN (mktemp);
   1252 #endif
   1253 
   1254 /* Allocate memory with indefinite extent and specified alignment.  */
   1255 #if 0
   1256 # if 0
   1257 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1258 #   undef posix_memalign
   1259 #   define posix_memalign rpl_posix_memalign
   1260 #  endif
   1261 _GL_FUNCDECL_RPL (posix_memalign, int,
   1262                   (void **memptr, size_t alignment, size_t size)
   1263                   _GL_ARG_NONNULL ((1)));
   1264 _GL_CXXALIAS_RPL (posix_memalign, int,
   1265                   (void **memptr, size_t alignment, size_t size));
   1266 # else
   1267 #  if 1
   1268 _GL_CXXALIAS_SYS (posix_memalign, int,
   1269                   (void **memptr, size_t alignment, size_t size));
   1270 #  endif
   1271 # endif
   1272 # if 1
   1273 _GL_CXXALIASWARN (posix_memalign);
   1274 # endif
   1275 #elif defined GNULIB_POSIXCHECK
   1276 # undef posix_memalign
   1277 # if HAVE_RAW_DECL_POSIX_MEMALIGN
   1278 _GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
   1279                  "use gnulib module posix_memalign for portability");
   1280 # endif
   1281 #endif
   1282 
   1283 #if 0
   1284 /* Return an FD open to the master side of a pseudo-terminal.  Flags should
   1285    include O_RDWR, and may also include O_NOCTTY.  */
   1286 # if !1
   1287 _GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
   1288 # endif
   1289 _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
   1290 _GL_CXXALIASWARN (posix_openpt);
   1291 #elif defined GNULIB_POSIXCHECK
   1292 # undef posix_openpt
   1293 # if HAVE_RAW_DECL_POSIX_OPENPT
   1294 _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
   1295                  "use gnulib module posix_openpt for portability");
   1296 # endif
   1297 #endif
   1298 
   1299 #if 0
   1300 /* Return the pathname of the pseudo-terminal slave associated with
   1301    the master FD is open on, or NULL on errors.  */
   1302 # if 0
   1303 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1304 #   undef ptsname
   1305 #   define ptsname rpl_ptsname
   1306 #  endif
   1307 _GL_FUNCDECL_RPL (ptsname, char *, (int fd));
   1308 _GL_CXXALIAS_RPL (ptsname, char *, (int fd));
   1309 # else
   1310 #  if !1
   1311 _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
   1312 #  endif
   1313 _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
   1314 # endif
   1315 _GL_CXXALIASWARN (ptsname);
   1316 #elif defined GNULIB_POSIXCHECK
   1317 # undef ptsname
   1318 # if HAVE_RAW_DECL_PTSNAME
   1319 _GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
   1320                  "use gnulib module ptsname for portability");
   1321 # endif
   1322 #endif
   1323 
   1324 #if 0
   1325 /* Set the pathname of the pseudo-terminal slave associated with
   1326    the master FD is open on and return 0, or set errno and return
   1327    non-zero on errors.  */
   1328 # if 0
   1329 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1330 #   undef ptsname_r
   1331 #   define ptsname_r rpl_ptsname_r
   1332 #  endif
   1333 _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
   1334 _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
   1335 # else
   1336 #  if !1
   1337 _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
   1338 #  endif
   1339 _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
   1340 # endif
   1341 # ifndef GNULIB_defined_ptsname_r
   1342 #  define GNULIB_defined_ptsname_r (!1 || 0)
   1343 # endif
   1344 _GL_CXXALIASWARN (ptsname_r);
   1345 #elif defined GNULIB_POSIXCHECK
   1346 # undef ptsname_r
   1347 # if HAVE_RAW_DECL_PTSNAME_R
   1348 _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
   1349                  "use gnulib module ptsname_r for portability");
   1350 # endif
   1351 #endif
   1352 
   1353 #if 0
   1354 # if 0
   1355 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1356 #   undef putenv
   1357 #   define putenv rpl_putenv
   1358 #  endif
   1359 _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1)));
   1360 _GL_CXXALIAS_RPL (putenv, int, (char *string));
   1361 # elif defined _WIN32 && !defined __CYGWIN__
   1362 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1363 #   undef putenv
   1364 #   define putenv _putenv
   1365 #  endif
   1366 _GL_CXXALIAS_MDA (putenv, int, (char *string));
   1367 # else
   1368 _GL_CXXALIAS_SYS (putenv, int, (char *string));
   1369 # endif
   1370 _GL_CXXALIASWARN (putenv);
   1371 #elif 1
   1372 /* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not
   1373    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
   1374    platforms by defining GNULIB_NAMESPACE::putenv always.  */
   1375 # if defined _WIN32 && !defined __CYGWIN__
   1376 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1377 #   undef putenv
   1378 #   define putenv _putenv
   1379 #  endif
   1380 /* Need to cast, because on mingw, the parameter is either
   1381    'const char *string' or 'char *string'.  */
   1382 _GL_CXXALIAS_MDA_CAST (putenv, int, (char *string));
   1383 # else
   1384 _GL_CXXALIAS_SYS (putenv, int, (char *string));
   1385 # endif
   1386 _GL_CXXALIASWARN (putenv);
   1387 #endif
   1388 
   1389 #if 0
   1390 /* Sort an array of NMEMB elements, starting at address BASE, each element
   1391    occupying SIZE bytes, in ascending order according to the comparison
   1392    function COMPARE.  */
   1393 # ifdef __cplusplus
   1394 extern "C" {
   1395 # endif
   1396 # if !GNULIB_defined_qsort_r_fn_types
   1397 typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *);
   1398 #  define GNULIB_defined_qsort_r_fn_types 1
   1399 # endif
   1400 # ifdef __cplusplus
   1401 }
   1402 # endif
   1403 # if 0
   1404 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1405 #   undef qsort_r
   1406 #   define qsort_r rpl_qsort_r
   1407 #  endif
   1408 _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
   1409                                   _gl_qsort_r_compar_fn compare,
   1410                                   void *arg) _GL_ARG_NONNULL ((1, 4)));
   1411 _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
   1412                                   _gl_qsort_r_compar_fn compare,
   1413                                   void *arg));
   1414 # else
   1415 #  if !1
   1416 _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
   1417                                   _gl_qsort_r_compar_fn compare,
   1418                                   void *arg) _GL_ARG_NONNULL ((1, 4)));
   1419 #  endif
   1420 _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
   1421                                   _gl_qsort_r_compar_fn compare,
   1422                                   void *arg));
   1423 # endif
   1424 _GL_CXXALIASWARN (qsort_r);
   1425 #elif defined GNULIB_POSIXCHECK
   1426 # undef qsort_r
   1427 # if HAVE_RAW_DECL_QSORT_R
   1428 _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - "
   1429                  "use gnulib module qsort_r for portability");
   1430 # endif
   1431 #endif
   1432 
   1433 
   1434 #if 0
   1435 # if !1
   1436 #  ifndef RAND_MAX
   1437 #   define RAND_MAX 2147483647
   1438 #  endif
   1439 # endif
   1440 #endif
   1441 
   1442 
   1443 #if 0
   1444 # if 0
   1445 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1446 #   undef random
   1447 #   define random rpl_random
   1448 #  endif
   1449 _GL_FUNCDECL_RPL (random, long, (void));
   1450 _GL_CXXALIAS_RPL (random, long, (void));
   1451 # else
   1452 #  if !1
   1453 _GL_FUNCDECL_SYS (random, long, (void));
   1454 #  endif
   1455 /* Need to cast, because on Haiku, the return type is
   1456                                int.  */
   1457 _GL_CXXALIAS_SYS_CAST (random, long, (void));
   1458 # endif
   1459 _GL_CXXALIASWARN (random);
   1460 #elif defined GNULIB_POSIXCHECK
   1461 # undef random
   1462 # if HAVE_RAW_DECL_RANDOM
   1463 _GL_WARN_ON_USE (random, "random is unportable - "
   1464                  "use gnulib module random for portability");
   1465 # endif
   1466 #endif
   1467 
   1468 #if 0
   1469 # if 0
   1470 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1471 #   undef srandom
   1472 #   define srandom rpl_srandom
   1473 #  endif
   1474 _GL_FUNCDECL_RPL (srandom, void, (unsigned int seed));
   1475 _GL_CXXALIAS_RPL (srandom, void, (unsigned int seed));
   1476 # else
   1477 #  if !1
   1478 _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
   1479 #  endif
   1480 /* Need to cast, because on FreeBSD, the first parameter is
   1481                                        unsigned long seed.  */
   1482 _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed));
   1483 # endif
   1484 _GL_CXXALIASWARN (srandom);
   1485 #elif defined GNULIB_POSIXCHECK
   1486 # undef srandom
   1487 # if HAVE_RAW_DECL_SRANDOM
   1488 _GL_WARN_ON_USE (srandom, "srandom is unportable - "
   1489                  "use gnulib module random for portability");
   1490 # endif
   1491 #endif
   1492 
   1493 #if 0
   1494 # if 0
   1495 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1496 #   undef initstate
   1497 #   define initstate rpl_initstate
   1498 #  endif
   1499 _GL_FUNCDECL_RPL (initstate, char *,
   1500                   (unsigned int seed, char *buf, size_t buf_size)
   1501                   _GL_ARG_NONNULL ((2)));
   1502 _GL_CXXALIAS_RPL (initstate, char *,
   1503                   (unsigned int seed, char *buf, size_t buf_size));
   1504 # else
   1505 #  if !1 || !1
   1506 _GL_FUNCDECL_SYS (initstate, char *,
   1507                   (unsigned int seed, char *buf, size_t buf_size)
   1508                   _GL_ARG_NONNULL ((2)));
   1509 #  endif
   1510 /* Need to cast, because on FreeBSD, the first parameter is
   1511                         unsigned long seed.  */
   1512 _GL_CXXALIAS_SYS_CAST (initstate, char *,
   1513                        (unsigned int seed, char *buf, size_t buf_size));
   1514 # endif
   1515 _GL_CXXALIASWARN (initstate);
   1516 #elif defined GNULIB_POSIXCHECK
   1517 # undef initstate
   1518 # if HAVE_RAW_DECL_INITSTATE
   1519 _GL_WARN_ON_USE (initstate, "initstate is unportable - "
   1520                  "use gnulib module random for portability");
   1521 # endif
   1522 #endif
   1523 
   1524 #if 0
   1525 # if 0
   1526 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1527 #   undef setstate
   1528 #   define setstate rpl_setstate
   1529 #  endif
   1530 _GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
   1531 _GL_CXXALIAS_RPL (setstate, char *, (char *arg_state));
   1532 # else
   1533 #  if !1 || !1
   1534 _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
   1535 #  endif
   1536 /* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter
   1537    is                                     const char *arg_state.  */
   1538 _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
   1539 # endif
   1540 _GL_CXXALIASWARN (setstate);
   1541 #elif defined GNULIB_POSIXCHECK
   1542 # undef setstate
   1543 # if HAVE_RAW_DECL_SETSTATE
   1544 _GL_WARN_ON_USE (setstate, "setstate is unportable - "
   1545                  "use gnulib module random for portability");
   1546 # endif
   1547 #endif
   1548 
   1549 
   1550 #if 0
   1551 # if 0
   1552 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1553 #   undef random_r
   1554 #   define random_r rpl_random_r
   1555 #  endif
   1556 _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result)
   1557                                  _GL_ARG_NONNULL ((1, 2)));
   1558 _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result));
   1559 # else
   1560 #  if !1
   1561 _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result)
   1562                                  _GL_ARG_NONNULL ((1, 2)));
   1563 #  endif
   1564 _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
   1565 # endif
   1566 _GL_CXXALIASWARN (random_r);
   1567 #elif defined GNULIB_POSIXCHECK
   1568 # undef random_r
   1569 # if HAVE_RAW_DECL_RANDOM_R
   1570 _GL_WARN_ON_USE (random_r, "random_r is unportable - "
   1571                  "use gnulib module random_r for portability");
   1572 # endif
   1573 #endif
   1574 
   1575 #if 0
   1576 # if 0
   1577 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1578 #   undef srandom_r
   1579 #   define srandom_r rpl_srandom_r
   1580 #  endif
   1581 _GL_FUNCDECL_RPL (srandom_r, int,
   1582                   (unsigned int seed, struct random_data *rand_state)
   1583                   _GL_ARG_NONNULL ((2)));
   1584 _GL_CXXALIAS_RPL (srandom_r, int,
   1585                   (unsigned int seed, struct random_data *rand_state));
   1586 # else
   1587 #  if !1
   1588 _GL_FUNCDECL_SYS (srandom_r, int,
   1589                   (unsigned int seed, struct random_data *rand_state)
   1590                   _GL_ARG_NONNULL ((2)));
   1591 #  endif
   1592 _GL_CXXALIAS_SYS (srandom_r, int,
   1593                   (unsigned int seed, struct random_data *rand_state));
   1594 # endif
   1595 _GL_CXXALIASWARN (srandom_r);
   1596 #elif defined GNULIB_POSIXCHECK
   1597 # undef srandom_r
   1598 # if HAVE_RAW_DECL_SRANDOM_R
   1599 _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
   1600                  "use gnulib module random_r for portability");
   1601 # endif
   1602 #endif
   1603 
   1604 #if 0
   1605 # if 0
   1606 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1607 #   undef initstate_r
   1608 #   define initstate_r rpl_initstate_r
   1609 #  endif
   1610 _GL_FUNCDECL_RPL (initstate_r, int,
   1611                   (unsigned int seed, char *buf, size_t buf_size,
   1612                    struct random_data *rand_state)
   1613                   _GL_ARG_NONNULL ((2, 4)));
   1614 _GL_CXXALIAS_RPL (initstate_r, int,
   1615                   (unsigned int seed, char *buf, size_t buf_size,
   1616                    struct random_data *rand_state));
   1617 # else
   1618 #  if !1
   1619 _GL_FUNCDECL_SYS (initstate_r, int,
   1620                   (unsigned int seed, char *buf, size_t buf_size,
   1621                    struct random_data *rand_state)
   1622                   _GL_ARG_NONNULL ((2, 4)));
   1623 #  endif
   1624 /* Need to cast, because on Haiku, the third parameter is
   1625                                                      unsigned long buf_size.  */
   1626 _GL_CXXALIAS_SYS_CAST (initstate_r, int,
   1627                        (unsigned int seed, char *buf, size_t buf_size,
   1628                         struct random_data *rand_state));
   1629 # endif
   1630 _GL_CXXALIASWARN (initstate_r);
   1631 #elif defined GNULIB_POSIXCHECK
   1632 # undef initstate_r
   1633 # if HAVE_RAW_DECL_INITSTATE_R
   1634 _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
   1635                  "use gnulib module random_r for portability");
   1636 # endif
   1637 #endif
   1638 
   1639 #if 0
   1640 # if 0
   1641 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1642 #   undef setstate_r
   1643 #   define setstate_r rpl_setstate_r
   1644 #  endif
   1645 _GL_FUNCDECL_RPL (setstate_r, int,
   1646                   (char *arg_state, struct random_data *rand_state)
   1647                   _GL_ARG_NONNULL ((1, 2)));
   1648 _GL_CXXALIAS_RPL (setstate_r, int,
   1649                   (char *arg_state, struct random_data *rand_state));
   1650 # else
   1651 #  if !1
   1652 _GL_FUNCDECL_SYS (setstate_r, int,
   1653                   (char *arg_state, struct random_data *rand_state)
   1654                   _GL_ARG_NONNULL ((1, 2)));
   1655 #  endif
   1656 /* Need to cast, because on Haiku, the first parameter is
   1657                         void *arg_state.  */
   1658 _GL_CXXALIAS_SYS_CAST (setstate_r, int,
   1659                        (char *arg_state, struct random_data *rand_state));
   1660 # endif
   1661 _GL_CXXALIASWARN (setstate_r);
   1662 #elif defined GNULIB_POSIXCHECK
   1663 # undef setstate_r
   1664 # if HAVE_RAW_DECL_SETSTATE_R
   1665 _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
   1666                  "use gnulib module random_r for portability");
   1667 # endif
   1668 #endif
   1669 
   1670 
   1671 #if 1
   1672 # if (1 && 0) \
   1673      || (0 && 0)
   1674 #  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
   1675         || _GL_USE_STDLIB_ALLOC)
   1676 #   undef realloc
   1677 #   define realloc rpl_realloc
   1678 #  endif
   1679 _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)
   1680                                    _GL_ATTRIBUTE_DEALLOC_FREE);
   1681 _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
   1682 # else
   1683 #  if __GNUC__ >= 11
   1684 /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free.  */
   1685 _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
   1686                                    _GL_ATTRIBUTE_DEALLOC_FREE);
   1687 #  endif
   1688 _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
   1689 # endif
   1690 # if __GLIBC__ >= 2
   1691 _GL_CXXALIASWARN (realloc);
   1692 # endif
   1693 #else
   1694 # if 1 && __GNUC__ >= 11 && !defined realloc
   1695 /* For -Wmismatched-dealloc: Associate realloc with free or rpl_free.  */
   1696 _GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
   1697                                    _GL_ATTRIBUTE_DEALLOC_FREE);
   1698 # endif
   1699 # if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
   1700 #  undef realloc
   1701 /* Assume realloc is always declared.  */
   1702 _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
   1703                  "use gnulib module realloc-posix for portability");
   1704 # endif
   1705 #endif
   1706 
   1707 
   1708 #if 0
   1709 # if 0
   1710 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1711 #   undef reallocarray
   1712 #   define reallocarray rpl_reallocarray
   1713 #  endif
   1714 _GL_FUNCDECL_RPL (reallocarray, void *,
   1715                   (void *ptr, size_t nmemb, size_t size));
   1716 _GL_CXXALIAS_RPL (reallocarray, void *,
   1717                   (void *ptr, size_t nmemb, size_t size));
   1718 # else
   1719 #  if ! 1
   1720 _GL_FUNCDECL_SYS (reallocarray, void *,
   1721                   (void *ptr, size_t nmemb, size_t size));
   1722 #  endif
   1723 _GL_CXXALIAS_SYS (reallocarray, void *,
   1724                   (void *ptr, size_t nmemb, size_t size));
   1725 # endif
   1726 _GL_CXXALIASWARN (reallocarray);
   1727 #elif defined GNULIB_POSIXCHECK
   1728 # undef reallocarray
   1729 # if HAVE_RAW_DECL_REALLOCARRAY
   1730 _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - "
   1731                  "use gnulib module reallocarray for portability");
   1732 # endif
   1733 #endif
   1734 
   1735 #if 1
   1736 # if 1
   1737 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1738 #   define realpath rpl_realpath
   1739 #  endif
   1740 _GL_FUNCDECL_RPL (realpath, char *,
   1741                   (const char *restrict name, char *restrict resolved)
   1742                   _GL_ARG_NONNULL ((1)));
   1743 _GL_CXXALIAS_RPL (realpath, char *,
   1744                   (const char *restrict name, char *restrict resolved));
   1745 # else
   1746 #  if !1
   1747 _GL_FUNCDECL_SYS (realpath, char *,
   1748                   (const char *restrict name, char *restrict resolved)
   1749                   _GL_ARG_NONNULL ((1)));
   1750 #  endif
   1751 _GL_CXXALIAS_SYS (realpath, char *,
   1752                   (const char *restrict name, char *restrict resolved));
   1753 # endif
   1754 _GL_CXXALIASWARN (realpath);
   1755 #elif defined GNULIB_POSIXCHECK
   1756 # undef realpath
   1757 # if HAVE_RAW_DECL_REALPATH
   1758 _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module "
   1759                  "canonicalize or canonicalize-lgpl for portability");
   1760 # endif
   1761 #endif
   1762 
   1763 #if 0
   1764 /* Test a user response to a question.
   1765    Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear.  */
   1766 # if !1
   1767 _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1)));
   1768 # endif
   1769 _GL_CXXALIAS_SYS (rpmatch, int, (const char *response));
   1770 _GL_CXXALIASWARN (rpmatch);
   1771 #elif defined GNULIB_POSIXCHECK
   1772 # undef rpmatch
   1773 # if HAVE_RAW_DECL_RPMATCH
   1774 _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
   1775                  "use gnulib module rpmatch for portability");
   1776 # endif
   1777 #endif
   1778 
   1779 #if 0
   1780 /* Look up NAME in the environment, returning 0 in insecure situations.  */
   1781 # if !1
   1782 _GL_FUNCDECL_SYS (secure_getenv, char *,
   1783                   (char const *name) _GL_ARG_NONNULL ((1)));
   1784 # endif
   1785 _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
   1786 _GL_CXXALIASWARN (secure_getenv);
   1787 #elif defined GNULIB_POSIXCHECK
   1788 # undef secure_getenv
   1789 # if HAVE_RAW_DECL_SECURE_GETENV
   1790 _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
   1791                  "use gnulib module secure_getenv for portability");
   1792 # endif
   1793 #endif
   1794 
   1795 #if 1
   1796 /* Set NAME to VALUE in the environment.
   1797    If REPLACE is nonzero, overwrite an existing value.  */
   1798 # if 1
   1799 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1800 #   undef setenv
   1801 #   define setenv rpl_setenv
   1802 #  endif
   1803 _GL_FUNCDECL_RPL (setenv, int,
   1804                   (const char *name, const char *value, int replace)
   1805                   _GL_ARG_NONNULL ((1)));
   1806 _GL_CXXALIAS_RPL (setenv, int,
   1807                   (const char *name, const char *value, int replace));
   1808 # else
   1809 #  if !1
   1810 _GL_FUNCDECL_SYS (setenv, int,
   1811                   (const char *name, const char *value, int replace)
   1812                   _GL_ARG_NONNULL ((1)));
   1813 #  endif
   1814 _GL_CXXALIAS_SYS (setenv, int,
   1815                   (const char *name, const char *value, int replace));
   1816 # endif
   1817 # if !(1 && !1)
   1818 _GL_CXXALIASWARN (setenv);
   1819 # endif
   1820 #elif defined GNULIB_POSIXCHECK
   1821 # undef setenv
   1822 # if HAVE_RAW_DECL_SETENV
   1823 _GL_WARN_ON_USE (setenv, "setenv is unportable - "
   1824                  "use gnulib module setenv for portability");
   1825 # endif
   1826 #endif
   1827 
   1828 #if 0
   1829  /* Parse a double from STRING, updating ENDP if appropriate.  */
   1830 # if 0
   1831 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1832 #   define strtod rpl_strtod
   1833 #  endif
   1834 #  define GNULIB_defined_strtod_function 1
   1835 _GL_FUNCDECL_RPL (strtod, double,
   1836                   (const char *restrict str, char **restrict endp)
   1837                   _GL_ARG_NONNULL ((1)));
   1838 _GL_CXXALIAS_RPL (strtod, double,
   1839                   (const char *restrict str, char **restrict endp));
   1840 # else
   1841 #  if !1
   1842 _GL_FUNCDECL_SYS (strtod, double,
   1843                   (const char *restrict str, char **restrict endp)
   1844                   _GL_ARG_NONNULL ((1)));
   1845 #  endif
   1846 _GL_CXXALIAS_SYS (strtod, double,
   1847                   (const char *restrict str, char **restrict endp));
   1848 # endif
   1849 # if __GLIBC__ >= 2
   1850 _GL_CXXALIASWARN (strtod);
   1851 # endif
   1852 #elif defined GNULIB_POSIXCHECK
   1853 # undef strtod
   1854 # if HAVE_RAW_DECL_STRTOD
   1855 _GL_WARN_ON_USE (strtod, "strtod is unportable - "
   1856                  "use gnulib module strtod for portability");
   1857 # endif
   1858 #endif
   1859 
   1860 #if 0
   1861  /* Parse a 'long double' from STRING, updating ENDP if appropriate.  */
   1862 # if 0
   1863 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1864 #   define strtold rpl_strtold
   1865 #  endif
   1866 #  define GNULIB_defined_strtold_function 1
   1867 _GL_FUNCDECL_RPL (strtold, long double,
   1868                   (const char *restrict str, char **restrict endp)
   1869                   _GL_ARG_NONNULL ((1)));
   1870 _GL_CXXALIAS_RPL (strtold, long double,
   1871                   (const char *restrict str, char **restrict endp));
   1872 # else
   1873 #  if !1
   1874 _GL_FUNCDECL_SYS (strtold, long double,
   1875                   (const char *restrict str, char **restrict endp)
   1876                   _GL_ARG_NONNULL ((1)));
   1877 #  endif
   1878 _GL_CXXALIAS_SYS (strtold, long double,
   1879                   (const char *restrict str, char **restrict endp));
   1880 # endif
   1881 _GL_CXXALIASWARN (strtold);
   1882 #elif defined GNULIB_POSIXCHECK
   1883 # undef strtold
   1884 # if HAVE_RAW_DECL_STRTOLD
   1885 _GL_WARN_ON_USE (strtold, "strtold is unportable - "
   1886                  "use gnulib module strtold for portability");
   1887 # endif
   1888 #endif
   1889 
   1890 #if 0
   1891 /* Parse a signed integer whose textual representation starts at STRING.
   1892    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
   1893    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
   1894    "0x").
   1895    If ENDPTR is not NULL, the address of the first byte after the integer is
   1896    stored in *ENDPTR.
   1897    Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set
   1898    to ERANGE.  */
   1899 # if 0
   1900 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1901 #   define strtol rpl_strtol
   1902 #  endif
   1903 #  define GNULIB_defined_strtol_function 1
   1904 _GL_FUNCDECL_RPL (strtol, long,
   1905                   (const char *restrict string, char **restrict endptr,
   1906                    int base)
   1907                   _GL_ARG_NONNULL ((1)));
   1908 _GL_CXXALIAS_RPL (strtol, long,
   1909                   (const char *restrict string, char **restrict endptr,
   1910                    int base));
   1911 # else
   1912 #  if !1
   1913 _GL_FUNCDECL_SYS (strtol, long,
   1914                   (const char *restrict string, char **restrict endptr,
   1915                    int base)
   1916                   _GL_ARG_NONNULL ((1)));
   1917 #  endif
   1918 _GL_CXXALIAS_SYS (strtol, long,
   1919                   (const char *restrict string, char **restrict endptr,
   1920                    int base));
   1921 # endif
   1922 _GL_CXXALIASWARN (strtol);
   1923 #elif defined GNULIB_POSIXCHECK
   1924 # undef strtol
   1925 # if HAVE_RAW_DECL_STRTOL
   1926 _GL_WARN_ON_USE (strtol, "strtol is unportable - "
   1927                  "use gnulib module strtol for portability");
   1928 # endif
   1929 #endif
   1930 
   1931 #if 0
   1932 /* Parse a signed integer whose textual representation starts at STRING.
   1933    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
   1934    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
   1935    "0x").
   1936    If ENDPTR is not NULL, the address of the first byte after the integer is
   1937    stored in *ENDPTR.
   1938    Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
   1939    to ERANGE.  */
   1940 # if 0
   1941 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1942 #   define strtoll rpl_strtoll
   1943 #  endif
   1944 #  define GNULIB_defined_strtoll_function 1
   1945 _GL_FUNCDECL_RPL (strtoll, long long,
   1946                   (const char *restrict string, char **restrict endptr,
   1947                    int base)
   1948                   _GL_ARG_NONNULL ((1)));
   1949 _GL_CXXALIAS_RPL (strtoll, long long,
   1950                   (const char *restrict string, char **restrict endptr,
   1951                    int base));
   1952 # else
   1953 #  if !1
   1954 _GL_FUNCDECL_SYS (strtoll, long long,
   1955                   (const char *restrict string, char **restrict endptr,
   1956                    int base)
   1957                   _GL_ARG_NONNULL ((1)));
   1958 #  endif
   1959 _GL_CXXALIAS_SYS (strtoll, long long,
   1960                   (const char *restrict string, char **restrict endptr,
   1961                    int base));
   1962 # endif
   1963 _GL_CXXALIASWARN (strtoll);
   1964 #elif defined GNULIB_POSIXCHECK
   1965 # undef strtoll
   1966 # if HAVE_RAW_DECL_STRTOLL
   1967 _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
   1968                  "use gnulib module strtoll for portability");
   1969 # endif
   1970 #endif
   1971 
   1972 #if 0
   1973 /* Parse an unsigned integer whose textual representation starts at STRING.
   1974    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
   1975    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
   1976    "0x").
   1977    If ENDPTR is not NULL, the address of the first byte after the integer is
   1978    stored in *ENDPTR.
   1979    Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE.  */
   1980 # if 0
   1981 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1982 #   define strtoul rpl_strtoul
   1983 #  endif
   1984 #  define GNULIB_defined_strtoul_function 1
   1985 _GL_FUNCDECL_RPL (strtoul, unsigned long,
   1986                   (const char *restrict string, char **restrict endptr,
   1987                    int base)
   1988                   _GL_ARG_NONNULL ((1)));
   1989 _GL_CXXALIAS_RPL (strtoul, unsigned long,
   1990                   (const char *restrict string, char **restrict endptr,
   1991                    int base));
   1992 # else
   1993 #  if !1
   1994 _GL_FUNCDECL_SYS (strtoul, unsigned long,
   1995                   (const char *restrict string, char **restrict endptr,
   1996                    int base)
   1997                   _GL_ARG_NONNULL ((1)));
   1998 #  endif
   1999 _GL_CXXALIAS_SYS (strtoul, unsigned long,
   2000                   (const char *restrict string, char **restrict endptr,
   2001                    int base));
   2002 # endif
   2003 _GL_CXXALIASWARN (strtoul);
   2004 #elif defined GNULIB_POSIXCHECK
   2005 # undef strtoul
   2006 # if HAVE_RAW_DECL_STRTOUL
   2007 _GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
   2008                  "use gnulib module strtoul for portability");
   2009 # endif
   2010 #endif
   2011 
   2012 #if 0
   2013 /* Parse an unsigned integer whose textual representation starts at STRING.
   2014    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
   2015    it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
   2016    "0x").
   2017    If ENDPTR is not NULL, the address of the first byte after the integer is
   2018    stored in *ENDPTR.
   2019    Upon overflow, the return value is ULLONG_MAX, and errno is set to
   2020    ERANGE.  */
   2021 # if 0
   2022 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2023 #   define strtoull rpl_strtoull
   2024 #  endif
   2025 #  define GNULIB_defined_strtoull_function 1
   2026 _GL_FUNCDECL_RPL (strtoull, unsigned long long,
   2027                   (const char *restrict string, char **restrict endptr,
   2028                    int base)
   2029                   _GL_ARG_NONNULL ((1)));
   2030 _GL_CXXALIAS_RPL (strtoull, unsigned long long,
   2031                   (const char *restrict string, char **restrict endptr,
   2032                    int base));
   2033 # else
   2034 #  if !1
   2035 _GL_FUNCDECL_SYS (strtoull, unsigned long long,
   2036                   (const char *restrict string, char **restrict endptr,
   2037                    int base)
   2038                   _GL_ARG_NONNULL ((1)));
   2039 #  endif
   2040 _GL_CXXALIAS_SYS (strtoull, unsigned long long,
   2041                   (const char *restrict string, char **restrict endptr,
   2042                    int base));
   2043 # endif
   2044 _GL_CXXALIASWARN (strtoull);
   2045 #elif defined GNULIB_POSIXCHECK
   2046 # undef strtoull
   2047 # if HAVE_RAW_DECL_STRTOULL
   2048 _GL_WARN_ON_USE (strtoull, "strtoull is unportable - "
   2049                  "use gnulib module strtoull for portability");
   2050 # endif
   2051 #endif
   2052 
   2053 #if 0
   2054 /* Unlock the slave side of the pseudo-terminal whose master side is specified
   2055    by FD, so that it can be opened.  */
   2056 # if !1
   2057 _GL_FUNCDECL_SYS (unlockpt, int, (int fd));
   2058 # endif
   2059 _GL_CXXALIAS_SYS (unlockpt, int, (int fd));
   2060 _GL_CXXALIASWARN (unlockpt);
   2061 #elif defined GNULIB_POSIXCHECK
   2062 # undef unlockpt
   2063 # if HAVE_RAW_DECL_UNLOCKPT
   2064 _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
   2065                  "use gnulib module unlockpt for portability");
   2066 # endif
   2067 #endif
   2068 
   2069 #if 1
   2070 /* Remove the variable NAME from the environment.  */
   2071 # if 1
   2072 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2073 #   undef unsetenv
   2074 #   define unsetenv rpl_unsetenv
   2075 #  endif
   2076 _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
   2077 _GL_CXXALIAS_RPL (unsetenv, int, (const char *name));
   2078 # else
   2079 #  if !1
   2080 _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
   2081 #  endif
   2082 _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
   2083 # endif
   2084 # if !(1 && !1)
   2085 _GL_CXXALIASWARN (unsetenv);
   2086 # endif
   2087 #elif defined GNULIB_POSIXCHECK
   2088 # undef unsetenv
   2089 # if HAVE_RAW_DECL_UNSETENV
   2090 _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
   2091                  "use gnulib module unsetenv for portability");
   2092 # endif
   2093 #endif
   2094 
   2095 /* Convert a wide character to a multibyte character.  */
   2096 #if 0
   2097 # if 0
   2098 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   2099 #   undef wctomb
   2100 #   define wctomb rpl_wctomb
   2101 #  endif
   2102 _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc));
   2103 _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc));
   2104 # else
   2105 _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc));
   2106 # endif
   2107 # if __GLIBC__ >= 2
   2108 _GL_CXXALIASWARN (wctomb);
   2109 # endif
   2110 #endif
   2111 
   2112 
   2113 #endif /* _GL_STDLIB_H */
   2114 #endif /* _GL_STDLIB_H */
   2115 #endif
   2116