Home | History | Annotate | Download | only in linux-lib
      1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
      2 /* Copyright (C) 2006-2012 Free Software Foundation, Inc.
      3    Written by Paul Eggert, Bruno Haible, Derek Price.
      4    This file is part of gnulib.
      5 
      6    This program is free software: you can redistribute it and/or modify
      7    it under the terms of the GNU General Public License as published by
      8    the Free Software Foundation; either version 3 of the License, or
      9    (at your option) any later version.
     10 
     11    This program is distributed in the hope that it will be useful,
     12    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14    GNU General Public License for more details.
     15 
     16    You should have received a copy of the GNU General Public License
     17    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     18 
     19 /*
     20  * ISO C 99 <inttypes.h> for platforms that lack it.
     21  * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
     22  */
     23 
     24 #if __GNUC__ >= 3
     25 #pragma GCC system_header
     26 #endif
     27 
     28 
     29 /* Include the original <inttypes.h> if it exists, and if this file
     30    has not been included yet or if this file includes gnulib stdint.h
     31    which in turn includes this file.
     32    The include_next requires a split double-inclusion guard.  */
     33 #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
     34 # if 1
     35 
     36    /* Some pre-C++11 <stdint.h> implementations need this.  */
     37 #  if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
     38 #   define __STDC_FORMAT_MACROS 1
     39 #  endif
     40 
     41 #  include_next <inttypes.h>
     42 # endif
     43 #endif
     44 
     45 #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
     46 #define INTTYPES_H
     47 
     48 /* Include <stdint.h> or the gnulib replacement.
     49    But avoid namespace pollution on glibc systems.  */
     50 #ifndef __GLIBC__
     51 # include <stdint.h>
     52 #endif
     53 /* Get CHAR_BIT.  */
     54 #include <limits.h>
     55 
     56 #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
     57 # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib (at) gnu.org>."
     58 #endif
     59 
     60 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
     61 #ifndef _GL_CXXDEFS_H
     62 #define _GL_CXXDEFS_H
     63 
     64 /* The three most frequent use cases of these macros are:
     65 
     66    * For providing a substitute for a function that is missing on some
     67      platforms, but is declared and works fine on the platforms on which
     68      it exists:
     69 
     70        #if @GNULIB_FOO@
     71        # if !@HAVE_FOO@
     72        _GL_FUNCDECL_SYS (foo, ...);
     73        # endif
     74        _GL_CXXALIAS_SYS (foo, ...);
     75        _GL_CXXALIASWARN (foo);
     76        #elif defined GNULIB_POSIXCHECK
     77        ...
     78        #endif
     79 
     80    * For providing a replacement for a function that exists on all platforms,
     81      but is broken/insufficient and needs to be replaced on some platforms:
     82 
     83        #if @GNULIB_FOO@
     84        # if @REPLACE_FOO@
     85        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     86        #   undef foo
     87        #   define foo rpl_foo
     88        #  endif
     89        _GL_FUNCDECL_RPL (foo, ...);
     90        _GL_CXXALIAS_RPL (foo, ...);
     91        # else
     92        _GL_CXXALIAS_SYS (foo, ...);
     93        # endif
     94        _GL_CXXALIASWARN (foo);
     95        #elif defined GNULIB_POSIXCHECK
     96        ...
     97        #endif
     98 
     99    * For providing a replacement for a function that exists on some platforms
    100      but is broken/insufficient and needs to be replaced on some of them and
    101      is additionally either missing or undeclared on some other platforms:
    102 
    103        #if @GNULIB_FOO@
    104        # if @REPLACE_FOO@
    105        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    106        #   undef foo
    107        #   define foo rpl_foo
    108        #  endif
    109        _GL_FUNCDECL_RPL (foo, ...);
    110        _GL_CXXALIAS_RPL (foo, ...);
    111        # else
    112        #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
    113        _GL_FUNCDECL_SYS (foo, ...);
    114        #  endif
    115        _GL_CXXALIAS_SYS (foo, ...);
    116        # endif
    117        _GL_CXXALIASWARN (foo);
    118        #elif defined GNULIB_POSIXCHECK
    119        ...
    120        #endif
    121 */
    122 
    123 /* _GL_EXTERN_C declaration;
    124    performs the declaration with C linkage.  */
    125 #if defined __cplusplus
    126 # define _GL_EXTERN_C extern "C"
    127 #else
    128 # define _GL_EXTERN_C extern
    129 #endif
    130 
    131 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
    132    declares a replacement function, named rpl_func, with the given prototype,
    133    consisting of return type, parameters, and attributes.
    134    Example:
    135      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
    136                                   _GL_ARG_NONNULL ((1)));
    137  */
    138 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
    139   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
    140 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
    141   _GL_EXTERN_C rettype rpl_func parameters_and_attributes
    142 
    143 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
    144    declares the system function, named func, with the given prototype,
    145    consisting of return type, parameters, and attributes.
    146    Example:
    147      _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
    148                                   _GL_ARG_NONNULL ((1)));
    149  */
    150 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
    151   _GL_EXTERN_C rettype func parameters_and_attributes
    152 
    153 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
    154    declares a C++ alias called GNULIB_NAMESPACE::func
    155    that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
    156    Example:
    157      _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
    158  */
    159 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
    160   _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
    161 #if defined __cplusplus && defined GNULIB_NAMESPACE
    162 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    163     namespace GNULIB_NAMESPACE                                \
    164     {                                                         \
    165       rettype (*const func) parameters = ::rpl_func;          \
    166     }                                                         \
    167     _GL_EXTERN_C int _gl_cxxalias_dummy
    168 #else
    169 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
    170     _GL_EXTERN_C int _gl_cxxalias_dummy
    171 #endif
    172 
    173 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
    174    is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
    175    except that the C function rpl_func may have a slightly different
    176    declaration.  A cast is used to silence the "invalid conversion" error
    177    that would otherwise occur.  */
    178 #if defined __cplusplus && defined GNULIB_NAMESPACE
    179 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    180     namespace GNULIB_NAMESPACE                                     \
    181     {                                                              \
    182       rettype (*const func) parameters =                           \
    183         reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
    184     }                                                              \
    185     _GL_EXTERN_C int _gl_cxxalias_dummy
    186 #else
    187 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
    188     _GL_EXTERN_C int _gl_cxxalias_dummy
    189 #endif
    190 
    191 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
    192    declares a C++ alias called GNULIB_NAMESPACE::func
    193    that redirects to the system provided function func, if GNULIB_NAMESPACE
    194    is defined.
    195    Example:
    196      _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
    197  */
    198 #if defined __cplusplus && defined GNULIB_NAMESPACE
    199   /* If we were to write
    200        rettype (*const func) parameters = ::func;
    201      like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
    202      better (remove an indirection through a 'static' pointer variable),
    203      but then the _GL_CXXALIASWARN macro below would cause a warning not only
    204      for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
    205 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
    206     namespace GNULIB_NAMESPACE                     \
    207     {                                              \
    208       static rettype (*func) parameters = ::func;  \
    209     }                                              \
    210     _GL_EXTERN_C int _gl_cxxalias_dummy
    211 #else
    212 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
    213     _GL_EXTERN_C int _gl_cxxalias_dummy
    214 #endif
    215 
    216 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
    217    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    218    except that the C function func may have a slightly different declaration.
    219    A cast is used to silence the "invalid conversion" error that would
    220    otherwise occur.  */
    221 #if defined __cplusplus && defined GNULIB_NAMESPACE
    222 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    223     namespace GNULIB_NAMESPACE                          \
    224     {                                                   \
    225       static rettype (*func) parameters =               \
    226         reinterpret_cast<rettype(*)parameters>(::func); \
    227     }                                                   \
    228     _GL_EXTERN_C int _gl_cxxalias_dummy
    229 #else
    230 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
    231     _GL_EXTERN_C int _gl_cxxalias_dummy
    232 #endif
    233 
    234 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
    235    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
    236    except that the C function is picked among a set of overloaded functions,
    237    namely the one with rettype2 and parameters2.  Two consecutive casts
    238    are used to silence the "cannot find a match" and "invalid conversion"
    239    errors that would otherwise occur.  */
    240 #if defined __cplusplus && defined GNULIB_NAMESPACE
    241   /* The outer cast must be a reinterpret_cast.
    242      The inner cast: When the function is defined as a set of overloaded
    243      functions, it works as a static_cast<>, choosing the designated variant.
    244      When the function is defined as a single variant, it works as a
    245      reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
    246 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    247     namespace GNULIB_NAMESPACE                                                \
    248     {                                                                         \
    249       static rettype (*func) parameters =                                     \
    250         reinterpret_cast<rettype(*)parameters>(                               \
    251           (rettype2(*)parameters2)(::func));                                  \
    252     }                                                                         \
    253     _GL_EXTERN_C int _gl_cxxalias_dummy
    254 #else
    255 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
    256     _GL_EXTERN_C int _gl_cxxalias_dummy
    257 #endif
    258 
    259 /* _GL_CXXALIASWARN (func);
    260    causes a warning to be emitted when ::func is used but not when
    261    GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
    262    variants.  */
    263 #if defined __cplusplus && defined GNULIB_NAMESPACE
    264 # define _GL_CXXALIASWARN(func) \
    265    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
    266 # define _GL_CXXALIASWARN_1(func,namespace) \
    267    _GL_CXXALIASWARN_2 (func, namespace)
    268 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    269    we enable the warning only when not optimizing.  */
    270 # if !__OPTIMIZE__
    271 #  define _GL_CXXALIASWARN_2(func,namespace) \
    272     _GL_WARN_ON_USE (func, \
    273                      "The symbol ::" #func " refers to the system function. " \
    274                      "Use " #namespace "::" #func " instead.")
    275 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    276 #  define _GL_CXXALIASWARN_2(func,namespace) \
    277      extern __typeof__ (func) func
    278 # else
    279 #  define _GL_CXXALIASWARN_2(func,namespace) \
    280      _GL_EXTERN_C int _gl_cxxalias_dummy
    281 # endif
    282 #else
    283 # define _GL_CXXALIASWARN(func) \
    284     _GL_EXTERN_C int _gl_cxxalias_dummy
    285 #endif
    286 
    287 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
    288    causes a warning to be emitted when the given overloaded variant of ::func
    289    is used but not when GNULIB_NAMESPACE::func is used.  */
    290 #if defined __cplusplus && defined GNULIB_NAMESPACE
    291 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    292    _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
    293                         GNULIB_NAMESPACE)
    294 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
    295    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
    296 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
    297    we enable the warning only when not optimizing.  */
    298 # if !__OPTIMIZE__
    299 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    300     _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
    301                          "The symbol ::" #func " refers to the system function. " \
    302                          "Use " #namespace "::" #func " instead.")
    303 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    304 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    305      extern __typeof__ (func) func
    306 # else
    307 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
    308      _GL_EXTERN_C int _gl_cxxalias_dummy
    309 # endif
    310 #else
    311 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
    312     _GL_EXTERN_C int _gl_cxxalias_dummy
    313 #endif
    314 
    315 #endif /* _GL_CXXDEFS_H */
    316 
    317 /* The definition of _GL_ARG_NONNULL is copied here.  */
    318 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
    319    that the values passed as arguments n, ..., m must be non-NULL pointers.
    320    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
    321 #ifndef _GL_ARG_NONNULL
    322 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
    323 #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
    324 # else
    325 #  define _GL_ARG_NONNULL(params)
    326 # endif
    327 #endif
    328 
    329 /* The definition of _GL_WARN_ON_USE is copied here.  */
    330 #ifndef _GL_WARN_ON_USE
    331 
    332 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    333 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
    334 #  define _GL_WARN_ON_USE(function, message) \
    335 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
    336 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    337 /* Verify the existence of the function.  */
    338 #  define _GL_WARN_ON_USE(function, message) \
    339 extern __typeof__ (function) function
    340 # else /* Unsupported.  */
    341 #  define _GL_WARN_ON_USE(function, message) \
    342 _GL_WARN_EXTERN_C int _gl_warn_on_use
    343 # endif
    344 #endif
    345 
    346 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
    347    is like _GL_WARN_ON_USE (function, "string"), except that the function is
    348    declared with the given prototype, consisting of return type, parameters,
    349    and attributes.
    350    This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
    351    not work in this case.  */
    352 #ifndef _GL_WARN_ON_USE_CXX
    353 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
    354 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
    355 extern rettype function parameters_and_attributes \
    356      __attribute__ ((__warning__ (msg)))
    357 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
    358 /* Verify the existence of the function.  */
    359 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
    360 extern rettype function parameters_and_attributes
    361 # else /* Unsupported.  */
    362 #  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
    363 _GL_WARN_EXTERN_C int _gl_warn_on_use
    364 # endif
    365 #endif
    366 
    367 /* _GL_WARN_EXTERN_C declaration;
    368    performs the declaration with C linkage.  */
    369 #ifndef _GL_WARN_EXTERN_C
    370 # if defined __cplusplus
    371 #  define _GL_WARN_EXTERN_C extern "C"
    372 # else
    373 #  define _GL_WARN_EXTERN_C extern
    374 # endif
    375 #endif
    376 
    377 /* 7.8.1 Macros for format specifiers */
    378 
    379 #if defined _TNS_R_TARGET
    380    /* Tandem NonStop R series and compatible platforms released before
    381       July 2005 support %Ld but not %lld.  */
    382 # define _LONG_LONG_FORMAT_PREFIX "L"
    383 #else
    384 # define _LONG_LONG_FORMAT_PREFIX "ll"
    385 #endif
    386 
    387 #if !defined PRId8 || 0
    388 # undef PRId8
    389 # ifdef INT8_MAX
    390 #  define PRId8 "d"
    391 # endif
    392 #endif
    393 #if !defined PRIi8 || 0
    394 # undef PRIi8
    395 # ifdef INT8_MAX
    396 #  define PRIi8 "i"
    397 # endif
    398 #endif
    399 #if !defined PRIo8 || 0
    400 # undef PRIo8
    401 # ifdef UINT8_MAX
    402 #  define PRIo8 "o"
    403 # endif
    404 #endif
    405 #if !defined PRIu8 || 0
    406 # undef PRIu8
    407 # ifdef UINT8_MAX
    408 #  define PRIu8 "u"
    409 # endif
    410 #endif
    411 #if !defined PRIx8 || 0
    412 # undef PRIx8
    413 # ifdef UINT8_MAX
    414 #  define PRIx8 "x"
    415 # endif
    416 #endif
    417 #if !defined PRIX8 || 0
    418 # undef PRIX8
    419 # ifdef UINT8_MAX
    420 #  define PRIX8 "X"
    421 # endif
    422 #endif
    423 #if !defined PRId16 || 0
    424 # undef PRId16
    425 # ifdef INT16_MAX
    426 #  define PRId16 "d"
    427 # endif
    428 #endif
    429 #if !defined PRIi16 || 0
    430 # undef PRIi16
    431 # ifdef INT16_MAX
    432 #  define PRIi16 "i"
    433 # endif
    434 #endif
    435 #if !defined PRIo16 || 0
    436 # undef PRIo16
    437 # ifdef UINT16_MAX
    438 #  define PRIo16 "o"
    439 # endif
    440 #endif
    441 #if !defined PRIu16 || 0
    442 # undef PRIu16
    443 # ifdef UINT16_MAX
    444 #  define PRIu16 "u"
    445 # endif
    446 #endif
    447 #if !defined PRIx16 || 0
    448 # undef PRIx16
    449 # ifdef UINT16_MAX
    450 #  define PRIx16 "x"
    451 # endif
    452 #endif
    453 #if !defined PRIX16 || 0
    454 # undef PRIX16
    455 # ifdef UINT16_MAX
    456 #  define PRIX16 "X"
    457 # endif
    458 #endif
    459 #if !defined PRId32 || 0
    460 # undef PRId32
    461 # ifdef INT32_MAX
    462 #  define PRId32 "d"
    463 # endif
    464 #endif
    465 #if !defined PRIi32 || 0
    466 # undef PRIi32
    467 # ifdef INT32_MAX
    468 #  define PRIi32 "i"
    469 # endif
    470 #endif
    471 #if !defined PRIo32 || 0
    472 # undef PRIo32
    473 # ifdef UINT32_MAX
    474 #  define PRIo32 "o"
    475 # endif
    476 #endif
    477 #if !defined PRIu32 || 0
    478 # undef PRIu32
    479 # ifdef UINT32_MAX
    480 #  define PRIu32 "u"
    481 # endif
    482 #endif
    483 #if !defined PRIx32 || 0
    484 # undef PRIx32
    485 # ifdef UINT32_MAX
    486 #  define PRIx32 "x"
    487 # endif
    488 #endif
    489 #if !defined PRIX32 || 0
    490 # undef PRIX32
    491 # ifdef UINT32_MAX
    492 #  define PRIX32 "X"
    493 # endif
    494 #endif
    495 #ifdef INT64_MAX
    496 # if (0 ? defined _LP64 : 1)
    497 #  define _PRI64_PREFIX "l"
    498 # elif defined _MSC_VER || defined __MINGW32__
    499 #  define _PRI64_PREFIX "I64"
    500 # elif 1 && LONG_MAX >> 30 == 1
    501 #  define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
    502 # endif
    503 # if !defined PRId64 || 0
    504 #  undef PRId64
    505 #  define PRId64 _PRI64_PREFIX "d"
    506 # endif
    507 # if !defined PRIi64 || 0
    508 #  undef PRIi64
    509 #  define PRIi64 _PRI64_PREFIX "i"
    510 # endif
    511 #endif
    512 #ifdef UINT64_MAX
    513 # if (0 ? defined _LP64 : 1)
    514 #  define _PRIu64_PREFIX "l"
    515 # elif defined _MSC_VER || defined __MINGW32__
    516 #  define _PRIu64_PREFIX "I64"
    517 # elif 1 && ULONG_MAX >> 31 == 1
    518 #  define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
    519 # endif
    520 # if !defined PRIo64 || 0
    521 #  undef PRIo64
    522 #  define PRIo64 _PRIu64_PREFIX "o"
    523 # endif
    524 # if !defined PRIu64 || 0
    525 #  undef PRIu64
    526 #  define PRIu64 _PRIu64_PREFIX "u"
    527 # endif
    528 # if !defined PRIx64 || 0
    529 #  undef PRIx64
    530 #  define PRIx64 _PRIu64_PREFIX "x"
    531 # endif
    532 # if !defined PRIX64 || 0
    533 #  undef PRIX64
    534 #  define PRIX64 _PRIu64_PREFIX "X"
    535 # endif
    536 #endif
    537 
    538 #if !defined PRIdLEAST8 || 0
    539 # undef PRIdLEAST8
    540 # define PRIdLEAST8 "d"
    541 #endif
    542 #if !defined PRIiLEAST8 || 0
    543 # undef PRIiLEAST8
    544 # define PRIiLEAST8 "i"
    545 #endif
    546 #if !defined PRIoLEAST8 || 0
    547 # undef PRIoLEAST8
    548 # define PRIoLEAST8 "o"
    549 #endif
    550 #if !defined PRIuLEAST8 || 0
    551 # undef PRIuLEAST8
    552 # define PRIuLEAST8 "u"
    553 #endif
    554 #if !defined PRIxLEAST8 || 0
    555 # undef PRIxLEAST8
    556 # define PRIxLEAST8 "x"
    557 #endif
    558 #if !defined PRIXLEAST8 || 0
    559 # undef PRIXLEAST8
    560 # define PRIXLEAST8 "X"
    561 #endif
    562 #if !defined PRIdLEAST16 || 0
    563 # undef PRIdLEAST16
    564 # define PRIdLEAST16 "d"
    565 #endif
    566 #if !defined PRIiLEAST16 || 0
    567 # undef PRIiLEAST16
    568 # define PRIiLEAST16 "i"
    569 #endif
    570 #if !defined PRIoLEAST16 || 0
    571 # undef PRIoLEAST16
    572 # define PRIoLEAST16 "o"
    573 #endif
    574 #if !defined PRIuLEAST16 || 0
    575 # undef PRIuLEAST16
    576 # define PRIuLEAST16 "u"
    577 #endif
    578 #if !defined PRIxLEAST16 || 0
    579 # undef PRIxLEAST16
    580 # define PRIxLEAST16 "x"
    581 #endif
    582 #if !defined PRIXLEAST16 || 0
    583 # undef PRIXLEAST16
    584 # define PRIXLEAST16 "X"
    585 #endif
    586 #if !defined PRIdLEAST32 || 0
    587 # undef PRIdLEAST32
    588 # define PRIdLEAST32 "d"
    589 #endif
    590 #if !defined PRIiLEAST32 || 0
    591 # undef PRIiLEAST32
    592 # define PRIiLEAST32 "i"
    593 #endif
    594 #if !defined PRIoLEAST32 || 0
    595 # undef PRIoLEAST32
    596 # define PRIoLEAST32 "o"
    597 #endif
    598 #if !defined PRIuLEAST32 || 0
    599 # undef PRIuLEAST32
    600 # define PRIuLEAST32 "u"
    601 #endif
    602 #if !defined PRIxLEAST32 || 0
    603 # undef PRIxLEAST32
    604 # define PRIxLEAST32 "x"
    605 #endif
    606 #if !defined PRIXLEAST32 || 0
    607 # undef PRIXLEAST32
    608 # define PRIXLEAST32 "X"
    609 #endif
    610 #ifdef INT64_MAX
    611 # if !defined PRIdLEAST64 || 0
    612 #  undef PRIdLEAST64
    613 #  define PRIdLEAST64 PRId64
    614 # endif
    615 # if !defined PRIiLEAST64 || 0
    616 #  undef PRIiLEAST64
    617 #  define PRIiLEAST64 PRIi64
    618 # endif
    619 #endif
    620 #ifdef UINT64_MAX
    621 # if !defined PRIoLEAST64 || 0
    622 #  undef PRIoLEAST64
    623 #  define PRIoLEAST64 PRIo64
    624 # endif
    625 # if !defined PRIuLEAST64 || 0
    626 #  undef PRIuLEAST64
    627 #  define PRIuLEAST64 PRIu64
    628 # endif
    629 # if !defined PRIxLEAST64 || 0
    630 #  undef PRIxLEAST64
    631 #  define PRIxLEAST64 PRIx64
    632 # endif
    633 # if !defined PRIXLEAST64 || 0
    634 #  undef PRIXLEAST64
    635 #  define PRIXLEAST64 PRIX64
    636 # endif
    637 #endif
    638 
    639 #if !defined PRIdFAST8 || 0
    640 # undef PRIdFAST8
    641 # if INT_FAST8_MAX > INT32_MAX
    642 #  define PRIdFAST8 PRId64
    643 # else
    644 #  define PRIdFAST8 "d"
    645 # endif
    646 #endif
    647 #if !defined PRIiFAST8 || 0
    648 # undef PRIiFAST8
    649 # if INT_FAST8_MAX > INT32_MAX
    650 #  define PRIiFAST8 PRIi64
    651 # else
    652 #  define PRIiFAST8 "i"
    653 # endif
    654 #endif
    655 #if !defined PRIoFAST8 || 0
    656 # undef PRIoFAST8
    657 # if UINT_FAST8_MAX > UINT32_MAX
    658 #  define PRIoFAST8 PRIo64
    659 # else
    660 #  define PRIoFAST8 "o"
    661 # endif
    662 #endif
    663 #if !defined PRIuFAST8 || 0
    664 # undef PRIuFAST8
    665 # if UINT_FAST8_MAX > UINT32_MAX
    666 #  define PRIuFAST8 PRIu64
    667 # else
    668 #  define PRIuFAST8 "u"
    669 # endif
    670 #endif
    671 #if !defined PRIxFAST8 || 0
    672 # undef PRIxFAST8
    673 # if UINT_FAST8_MAX > UINT32_MAX
    674 #  define PRIxFAST8 PRIx64
    675 # else
    676 #  define PRIxFAST8 "x"
    677 # endif
    678 #endif
    679 #if !defined PRIXFAST8 || 0
    680 # undef PRIXFAST8
    681 # if UINT_FAST8_MAX > UINT32_MAX
    682 #  define PRIXFAST8 PRIX64
    683 # else
    684 #  define PRIXFAST8 "X"
    685 # endif
    686 #endif
    687 #if !defined PRIdFAST16 || 0
    688 # undef PRIdFAST16
    689 # if INT_FAST16_MAX > INT32_MAX
    690 #  define PRIdFAST16 PRId64
    691 # else
    692 #  define PRIdFAST16 "d"
    693 # endif
    694 #endif
    695 #if !defined PRIiFAST16 || 0
    696 # undef PRIiFAST16
    697 # if INT_FAST16_MAX > INT32_MAX
    698 #  define PRIiFAST16 PRIi64
    699 # else
    700 #  define PRIiFAST16 "i"
    701 # endif
    702 #endif
    703 #if !defined PRIoFAST16 || 0
    704 # undef PRIoFAST16
    705 # if UINT_FAST16_MAX > UINT32_MAX
    706 #  define PRIoFAST16 PRIo64
    707 # else
    708 #  define PRIoFAST16 "o"
    709 # endif
    710 #endif
    711 #if !defined PRIuFAST16 || 0
    712 # undef PRIuFAST16
    713 # if UINT_FAST16_MAX > UINT32_MAX
    714 #  define PRIuFAST16 PRIu64
    715 # else
    716 #  define PRIuFAST16 "u"
    717 # endif
    718 #endif
    719 #if !defined PRIxFAST16 || 0
    720 # undef PRIxFAST16
    721 # if UINT_FAST16_MAX > UINT32_MAX
    722 #  define PRIxFAST16 PRIx64
    723 # else
    724 #  define PRIxFAST16 "x"
    725 # endif
    726 #endif
    727 #if !defined PRIXFAST16 || 0
    728 # undef PRIXFAST16
    729 # if UINT_FAST16_MAX > UINT32_MAX
    730 #  define PRIXFAST16 PRIX64
    731 # else
    732 #  define PRIXFAST16 "X"
    733 # endif
    734 #endif
    735 #if !defined PRIdFAST32 || 0
    736 # undef PRIdFAST32
    737 # if INT_FAST32_MAX > INT32_MAX
    738 #  define PRIdFAST32 PRId64
    739 # else
    740 #  define PRIdFAST32 "d"
    741 # endif
    742 #endif
    743 #if !defined PRIiFAST32 || 0
    744 # undef PRIiFAST32
    745 # if INT_FAST32_MAX > INT32_MAX
    746 #  define PRIiFAST32 PRIi64
    747 # else
    748 #  define PRIiFAST32 "i"
    749 # endif
    750 #endif
    751 #if !defined PRIoFAST32 || 0
    752 # undef PRIoFAST32
    753 # if UINT_FAST32_MAX > UINT32_MAX
    754 #  define PRIoFAST32 PRIo64
    755 # else
    756 #  define PRIoFAST32 "o"
    757 # endif
    758 #endif
    759 #if !defined PRIuFAST32 || 0
    760 # undef PRIuFAST32
    761 # if UINT_FAST32_MAX > UINT32_MAX
    762 #  define PRIuFAST32 PRIu64
    763 # else
    764 #  define PRIuFAST32 "u"
    765 # endif
    766 #endif
    767 #if !defined PRIxFAST32 || 0
    768 # undef PRIxFAST32
    769 # if UINT_FAST32_MAX > UINT32_MAX
    770 #  define PRIxFAST32 PRIx64
    771 # else
    772 #  define PRIxFAST32 "x"
    773 # endif
    774 #endif
    775 #if !defined PRIXFAST32 || 0
    776 # undef PRIXFAST32
    777 # if UINT_FAST32_MAX > UINT32_MAX
    778 #  define PRIXFAST32 PRIX64
    779 # else
    780 #  define PRIXFAST32 "X"
    781 # endif
    782 #endif
    783 #ifdef INT64_MAX
    784 # if !defined PRIdFAST64 || 0
    785 #  undef PRIdFAST64
    786 #  define PRIdFAST64 PRId64
    787 # endif
    788 # if !defined PRIiFAST64 || 0
    789 #  undef PRIiFAST64
    790 #  define PRIiFAST64 PRIi64
    791 # endif
    792 #endif
    793 #ifdef UINT64_MAX
    794 # if !defined PRIoFAST64 || 0
    795 #  undef PRIoFAST64
    796 #  define PRIoFAST64 PRIo64
    797 # endif
    798 # if !defined PRIuFAST64 || 0
    799 #  undef PRIuFAST64
    800 #  define PRIuFAST64 PRIu64
    801 # endif
    802 # if !defined PRIxFAST64 || 0
    803 #  undef PRIxFAST64
    804 #  define PRIxFAST64 PRIx64
    805 # endif
    806 # if !defined PRIXFAST64 || 0
    807 #  undef PRIXFAST64
    808 #  define PRIXFAST64 PRIX64
    809 # endif
    810 #endif
    811 
    812 #if !defined PRIdMAX || 0
    813 # undef PRIdMAX
    814 # if 1
    815 #  define PRIdMAX PRId64
    816 # else
    817 #  define PRIdMAX "ld"
    818 # endif
    819 #endif
    820 #if !defined PRIiMAX || 0
    821 # undef PRIiMAX
    822 # if 1
    823 #  define PRIiMAX PRIi64
    824 # else
    825 #  define PRIiMAX "li"
    826 # endif
    827 #endif
    828 #if !defined PRIoMAX || 0
    829 # undef PRIoMAX
    830 # if 1
    831 #  define PRIoMAX PRIo64
    832 # else
    833 #  define PRIoMAX "lo"
    834 # endif
    835 #endif
    836 #if !defined PRIuMAX || 0
    837 # undef PRIuMAX
    838 # if 1
    839 #  define PRIuMAX PRIu64
    840 # else
    841 #  define PRIuMAX "lu"
    842 # endif
    843 #endif
    844 #if !defined PRIxMAX || 0
    845 # undef PRIxMAX
    846 # if 1
    847 #  define PRIxMAX PRIx64
    848 # else
    849 #  define PRIxMAX "lx"
    850 # endif
    851 #endif
    852 #if !defined PRIXMAX || 0
    853 # undef PRIXMAX
    854 # if 1
    855 #  define PRIXMAX PRIX64
    856 # else
    857 #  define PRIXMAX "lX"
    858 # endif
    859 #endif
    860 
    861 #if !defined PRIdPTR || 0
    862 # undef PRIdPTR
    863 # ifdef INTPTR_MAX
    864 #  define PRIdPTR "l" "d"
    865 # endif
    866 #endif
    867 #if !defined PRIiPTR || 0
    868 # undef PRIiPTR
    869 # ifdef INTPTR_MAX
    870 #  define PRIiPTR "l" "i"
    871 # endif
    872 #endif
    873 #if !defined PRIoPTR || 0
    874 # undef PRIoPTR
    875 # ifdef UINTPTR_MAX
    876 #  define PRIoPTR "l" "o"
    877 # endif
    878 #endif
    879 #if !defined PRIuPTR || 0
    880 # undef PRIuPTR
    881 # ifdef UINTPTR_MAX
    882 #  define PRIuPTR "l" "u"
    883 # endif
    884 #endif
    885 #if !defined PRIxPTR || 0
    886 # undef PRIxPTR
    887 # ifdef UINTPTR_MAX
    888 #  define PRIxPTR "l" "x"
    889 # endif
    890 #endif
    891 #if !defined PRIXPTR || 0
    892 # undef PRIXPTR
    893 # ifdef UINTPTR_MAX
    894 #  define PRIXPTR "l" "X"
    895 # endif
    896 #endif
    897 
    898 #if !defined SCNd8 || 0
    899 # undef SCNd8
    900 # ifdef INT8_MAX
    901 #  define SCNd8 "hhd"
    902 # endif
    903 #endif
    904 #if !defined SCNi8 || 0
    905 # undef SCNi8
    906 # ifdef INT8_MAX
    907 #  define SCNi8 "hhi"
    908 # endif
    909 #endif
    910 #if !defined SCNo8 || 0
    911 # undef SCNo8
    912 # ifdef UINT8_MAX
    913 #  define SCNo8 "hho"
    914 # endif
    915 #endif
    916 #if !defined SCNu8 || 0
    917 # undef SCNu8
    918 # ifdef UINT8_MAX
    919 #  define SCNu8 "hhu"
    920 # endif
    921 #endif
    922 #if !defined SCNx8 || 0
    923 # undef SCNx8
    924 # ifdef UINT8_MAX
    925 #  define SCNx8 "hhx"
    926 # endif
    927 #endif
    928 #if !defined SCNd16 || 0
    929 # undef SCNd16
    930 # ifdef INT16_MAX
    931 #  define SCNd16 "hd"
    932 # endif
    933 #endif
    934 #if !defined SCNi16 || 0
    935 # undef SCNi16
    936 # ifdef INT16_MAX
    937 #  define SCNi16 "hi"
    938 # endif
    939 #endif
    940 #if !defined SCNo16 || 0
    941 # undef SCNo16
    942 # ifdef UINT16_MAX
    943 #  define SCNo16 "ho"
    944 # endif
    945 #endif
    946 #if !defined SCNu16 || 0
    947 # undef SCNu16
    948 # ifdef UINT16_MAX
    949 #  define SCNu16 "hu"
    950 # endif
    951 #endif
    952 #if !defined SCNx16 || 0
    953 # undef SCNx16
    954 # ifdef UINT16_MAX
    955 #  define SCNx16 "hx"
    956 # endif
    957 #endif
    958 #if !defined SCNd32 || 0
    959 # undef SCNd32
    960 # ifdef INT32_MAX
    961 #  define SCNd32 "d"
    962 # endif
    963 #endif
    964 #if !defined SCNi32 || 0
    965 # undef SCNi32
    966 # ifdef INT32_MAX
    967 #  define SCNi32 "i"
    968 # endif
    969 #endif
    970 #if !defined SCNo32 || 0
    971 # undef SCNo32
    972 # ifdef UINT32_MAX
    973 #  define SCNo32 "o"
    974 # endif
    975 #endif
    976 #if !defined SCNu32 || 0
    977 # undef SCNu32
    978 # ifdef UINT32_MAX
    979 #  define SCNu32 "u"
    980 # endif
    981 #endif
    982 #if !defined SCNx32 || 0
    983 # undef SCNx32
    984 # ifdef UINT32_MAX
    985 #  define SCNx32 "x"
    986 # endif
    987 #endif
    988 #ifdef INT64_MAX
    989 # if (0 ? defined _LP64 : 1)
    990 #  define _SCN64_PREFIX "l"
    991 # elif defined _MSC_VER || defined __MINGW32__
    992 #  define _SCN64_PREFIX "I64"
    993 # elif 1 && LONG_MAX >> 30 == 1
    994 #  define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
    995 # endif
    996 # if !defined SCNd64 || 0
    997 #  undef SCNd64
    998 #  define SCNd64 _SCN64_PREFIX "d"
    999 # endif
   1000 # if !defined SCNi64 || 0
   1001 #  undef SCNi64
   1002 #  define SCNi64 _SCN64_PREFIX "i"
   1003 # endif
   1004 #endif
   1005 #ifdef UINT64_MAX
   1006 # if (0 ? defined _LP64 : 1)
   1007 #  define _SCNu64_PREFIX "l"
   1008 # elif defined _MSC_VER || defined __MINGW32__
   1009 #  define _SCNu64_PREFIX "I64"
   1010 # elif 1 && ULONG_MAX >> 31 == 1
   1011 #  define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
   1012 # endif
   1013 # if !defined SCNo64 || 0
   1014 #  undef SCNo64
   1015 #  define SCNo64 _SCNu64_PREFIX "o"
   1016 # endif
   1017 # if !defined SCNu64 || 0
   1018 #  undef SCNu64
   1019 #  define SCNu64 _SCNu64_PREFIX "u"
   1020 # endif
   1021 # if !defined SCNx64 || 0
   1022 #  undef SCNx64
   1023 #  define SCNx64 _SCNu64_PREFIX "x"
   1024 # endif
   1025 #endif
   1026 
   1027 #if !defined SCNdLEAST8 || 0
   1028 # undef SCNdLEAST8
   1029 # define SCNdLEAST8 "hhd"
   1030 #endif
   1031 #if !defined SCNiLEAST8 || 0
   1032 # undef SCNiLEAST8
   1033 # define SCNiLEAST8 "hhi"
   1034 #endif
   1035 #if !defined SCNoLEAST8 || 0
   1036 # undef SCNoLEAST8
   1037 # define SCNoLEAST8 "hho"
   1038 #endif
   1039 #if !defined SCNuLEAST8 || 0
   1040 # undef SCNuLEAST8
   1041 # define SCNuLEAST8 "hhu"
   1042 #endif
   1043 #if !defined SCNxLEAST8 || 0
   1044 # undef SCNxLEAST8
   1045 # define SCNxLEAST8 "hhx"
   1046 #endif
   1047 #if !defined SCNdLEAST16 || 0
   1048 # undef SCNdLEAST16
   1049 # define SCNdLEAST16 "hd"
   1050 #endif
   1051 #if !defined SCNiLEAST16 || 0
   1052 # undef SCNiLEAST16
   1053 # define SCNiLEAST16 "hi"
   1054 #endif
   1055 #if !defined SCNoLEAST16 || 0
   1056 # undef SCNoLEAST16
   1057 # define SCNoLEAST16 "ho"
   1058 #endif
   1059 #if !defined SCNuLEAST16 || 0
   1060 # undef SCNuLEAST16
   1061 # define SCNuLEAST16 "hu"
   1062 #endif
   1063 #if !defined SCNxLEAST16 || 0
   1064 # undef SCNxLEAST16
   1065 # define SCNxLEAST16 "hx"
   1066 #endif
   1067 #if !defined SCNdLEAST32 || 0
   1068 # undef SCNdLEAST32
   1069 # define SCNdLEAST32 "d"
   1070 #endif
   1071 #if !defined SCNiLEAST32 || 0
   1072 # undef SCNiLEAST32
   1073 # define SCNiLEAST32 "i"
   1074 #endif
   1075 #if !defined SCNoLEAST32 || 0
   1076 # undef SCNoLEAST32
   1077 # define SCNoLEAST32 "o"
   1078 #endif
   1079 #if !defined SCNuLEAST32 || 0
   1080 # undef SCNuLEAST32
   1081 # define SCNuLEAST32 "u"
   1082 #endif
   1083 #if !defined SCNxLEAST32 || 0
   1084 # undef SCNxLEAST32
   1085 # define SCNxLEAST32 "x"
   1086 #endif
   1087 #ifdef INT64_MAX
   1088 # if !defined SCNdLEAST64 || 0
   1089 #  undef SCNdLEAST64
   1090 #  define SCNdLEAST64 SCNd64
   1091 # endif
   1092 # if !defined SCNiLEAST64 || 0
   1093 #  undef SCNiLEAST64
   1094 #  define SCNiLEAST64 SCNi64
   1095 # endif
   1096 #endif
   1097 #ifdef UINT64_MAX
   1098 # if !defined SCNoLEAST64 || 0
   1099 #  undef SCNoLEAST64
   1100 #  define SCNoLEAST64 SCNo64
   1101 # endif
   1102 # if !defined SCNuLEAST64 || 0
   1103 #  undef SCNuLEAST64
   1104 #  define SCNuLEAST64 SCNu64
   1105 # endif
   1106 # if !defined SCNxLEAST64 || 0
   1107 #  undef SCNxLEAST64
   1108 #  define SCNxLEAST64 SCNx64
   1109 # endif
   1110 #endif
   1111 
   1112 #if !defined SCNdFAST8 || 0
   1113 # undef SCNdFAST8
   1114 # if INT_FAST8_MAX > INT32_MAX
   1115 #  define SCNdFAST8 SCNd64
   1116 # elif INT_FAST8_MAX == 0x7fff
   1117 #  define SCNdFAST8 "hd"
   1118 # elif INT_FAST8_MAX == 0x7f
   1119 #  define SCNdFAST8 "hhd"
   1120 # else
   1121 #  define SCNdFAST8 "d"
   1122 # endif
   1123 #endif
   1124 #if !defined SCNiFAST8 || 0
   1125 # undef SCNiFAST8
   1126 # if INT_FAST8_MAX > INT32_MAX
   1127 #  define SCNiFAST8 SCNi64
   1128 # elif INT_FAST8_MAX == 0x7fff
   1129 #  define SCNiFAST8 "hi"
   1130 # elif INT_FAST8_MAX == 0x7f
   1131 #  define SCNiFAST8 "hhi"
   1132 # else
   1133 #  define SCNiFAST8 "i"
   1134 # endif
   1135 #endif
   1136 #if !defined SCNoFAST8 || 0
   1137 # undef SCNoFAST8
   1138 # if UINT_FAST8_MAX > UINT32_MAX
   1139 #  define SCNoFAST8 SCNo64
   1140 # elif UINT_FAST8_MAX == 0xffff
   1141 #  define SCNoFAST8 "ho"
   1142 # elif UINT_FAST8_MAX == 0xff
   1143 #  define SCNoFAST8 "hho"
   1144 # else
   1145 #  define SCNoFAST8 "o"
   1146 # endif
   1147 #endif
   1148 #if !defined SCNuFAST8 || 0
   1149 # undef SCNuFAST8
   1150 # if UINT_FAST8_MAX > UINT32_MAX
   1151 #  define SCNuFAST8 SCNu64
   1152 # elif UINT_FAST8_MAX == 0xffff
   1153 #  define SCNuFAST8 "hu"
   1154 # elif UINT_FAST8_MAX == 0xff
   1155 #  define SCNuFAST8 "hhu"
   1156 # else
   1157 #  define SCNuFAST8 "u"
   1158 # endif
   1159 #endif
   1160 #if !defined SCNxFAST8 || 0
   1161 # undef SCNxFAST8
   1162 # if UINT_FAST8_MAX > UINT32_MAX
   1163 #  define SCNxFAST8 SCNx64
   1164 # elif UINT_FAST8_MAX == 0xffff
   1165 #  define SCNxFAST8 "hx"
   1166 # elif UINT_FAST8_MAX == 0xff
   1167 #  define SCNxFAST8 "hhx"
   1168 # else
   1169 #  define SCNxFAST8 "x"
   1170 # endif
   1171 #endif
   1172 #if !defined SCNdFAST16 || 0
   1173 # undef SCNdFAST16
   1174 # if INT_FAST16_MAX > INT32_MAX
   1175 #  define SCNdFAST16 SCNd64
   1176 # elif INT_FAST16_MAX == 0x7fff
   1177 #  define SCNdFAST16 "hd"
   1178 # else
   1179 #  define SCNdFAST16 "d"
   1180 # endif
   1181 #endif
   1182 #if !defined SCNiFAST16 || 0
   1183 # undef SCNiFAST16
   1184 # if INT_FAST16_MAX > INT32_MAX
   1185 #  define SCNiFAST16 SCNi64
   1186 # elif INT_FAST16_MAX == 0x7fff
   1187 #  define SCNiFAST16 "hi"
   1188 # else
   1189 #  define SCNiFAST16 "i"
   1190 # endif
   1191 #endif
   1192 #if !defined SCNoFAST16 || 0
   1193 # undef SCNoFAST16
   1194 # if UINT_FAST16_MAX > UINT32_MAX
   1195 #  define SCNoFAST16 SCNo64
   1196 # elif UINT_FAST16_MAX == 0xffff
   1197 #  define SCNoFAST16 "ho"
   1198 # else
   1199 #  define SCNoFAST16 "o"
   1200 # endif
   1201 #endif
   1202 #if !defined SCNuFAST16 || 0
   1203 # undef SCNuFAST16
   1204 # if UINT_FAST16_MAX > UINT32_MAX
   1205 #  define SCNuFAST16 SCNu64
   1206 # elif UINT_FAST16_MAX == 0xffff
   1207 #  define SCNuFAST16 "hu"
   1208 # else
   1209 #  define SCNuFAST16 "u"
   1210 # endif
   1211 #endif
   1212 #if !defined SCNxFAST16 || 0
   1213 # undef SCNxFAST16
   1214 # if UINT_FAST16_MAX > UINT32_MAX
   1215 #  define SCNxFAST16 SCNx64
   1216 # elif UINT_FAST16_MAX == 0xffff
   1217 #  define SCNxFAST16 "hx"
   1218 # else
   1219 #  define SCNxFAST16 "x"
   1220 # endif
   1221 #endif
   1222 #if !defined SCNdFAST32 || 0
   1223 # undef SCNdFAST32
   1224 # if INT_FAST32_MAX > INT32_MAX
   1225 #  define SCNdFAST32 SCNd64
   1226 # else
   1227 #  define SCNdFAST32 "d"
   1228 # endif
   1229 #endif
   1230 #if !defined SCNiFAST32 || 0
   1231 # undef SCNiFAST32
   1232 # if INT_FAST32_MAX > INT32_MAX
   1233 #  define SCNiFAST32 SCNi64
   1234 # else
   1235 #  define SCNiFAST32 "i"
   1236 # endif
   1237 #endif
   1238 #if !defined SCNoFAST32 || 0
   1239 # undef SCNoFAST32
   1240 # if UINT_FAST32_MAX > UINT32_MAX
   1241 #  define SCNoFAST32 SCNo64
   1242 # else
   1243 #  define SCNoFAST32 "o"
   1244 # endif
   1245 #endif
   1246 #if !defined SCNuFAST32 || 0
   1247 # undef SCNuFAST32
   1248 # if UINT_FAST32_MAX > UINT32_MAX
   1249 #  define SCNuFAST32 SCNu64
   1250 # else
   1251 #  define SCNuFAST32 "u"
   1252 # endif
   1253 #endif
   1254 #if !defined SCNxFAST32 || 0
   1255 # undef SCNxFAST32
   1256 # if UINT_FAST32_MAX > UINT32_MAX
   1257 #  define SCNxFAST32 SCNx64
   1258 # else
   1259 #  define SCNxFAST32 "x"
   1260 # endif
   1261 #endif
   1262 #ifdef INT64_MAX
   1263 # if !defined SCNdFAST64 || 0
   1264 #  undef SCNdFAST64
   1265 #  define SCNdFAST64 SCNd64
   1266 # endif
   1267 # if !defined SCNiFAST64 || 0
   1268 #  undef SCNiFAST64
   1269 #  define SCNiFAST64 SCNi64
   1270 # endif
   1271 #endif
   1272 #ifdef UINT64_MAX
   1273 # if !defined SCNoFAST64 || 0
   1274 #  undef SCNoFAST64
   1275 #  define SCNoFAST64 SCNo64
   1276 # endif
   1277 # if !defined SCNuFAST64 || 0
   1278 #  undef SCNuFAST64
   1279 #  define SCNuFAST64 SCNu64
   1280 # endif
   1281 # if !defined SCNxFAST64 || 0
   1282 #  undef SCNxFAST64
   1283 #  define SCNxFAST64 SCNx64
   1284 # endif
   1285 #endif
   1286 
   1287 #if !defined SCNdMAX || 0
   1288 # undef SCNdMAX
   1289 # if 1
   1290 #  define SCNdMAX SCNd64
   1291 # else
   1292 #  define SCNdMAX "ld"
   1293 # endif
   1294 #endif
   1295 #if !defined SCNiMAX || 0
   1296 # undef SCNiMAX
   1297 # if 1
   1298 #  define SCNiMAX SCNi64
   1299 # else
   1300 #  define SCNiMAX "li"
   1301 # endif
   1302 #endif
   1303 #if !defined SCNoMAX || 0
   1304 # undef SCNoMAX
   1305 # if 1
   1306 #  define SCNoMAX SCNo64
   1307 # else
   1308 #  define SCNoMAX "lo"
   1309 # endif
   1310 #endif
   1311 #if !defined SCNuMAX || 0
   1312 # undef SCNuMAX
   1313 # if 1
   1314 #  define SCNuMAX SCNu64
   1315 # else
   1316 #  define SCNuMAX "lu"
   1317 # endif
   1318 #endif
   1319 #if !defined SCNxMAX || 0
   1320 # undef SCNxMAX
   1321 # if 1
   1322 #  define SCNxMAX SCNx64
   1323 # else
   1324 #  define SCNxMAX "lx"
   1325 # endif
   1326 #endif
   1327 
   1328 #if !defined SCNdPTR || 0
   1329 # undef SCNdPTR
   1330 # ifdef INTPTR_MAX
   1331 #  define SCNdPTR "l" "d"
   1332 # endif
   1333 #endif
   1334 #if !defined SCNiPTR || 0
   1335 # undef SCNiPTR
   1336 # ifdef INTPTR_MAX
   1337 #  define SCNiPTR "l" "i"
   1338 # endif
   1339 #endif
   1340 #if !defined SCNoPTR || 0
   1341 # undef SCNoPTR
   1342 # ifdef UINTPTR_MAX
   1343 #  define SCNoPTR "l" "o"
   1344 # endif
   1345 #endif
   1346 #if !defined SCNuPTR || 0
   1347 # undef SCNuPTR
   1348 # ifdef UINTPTR_MAX
   1349 #  define SCNuPTR "l" "u"
   1350 # endif
   1351 #endif
   1352 #if !defined SCNxPTR || 0
   1353 # undef SCNxPTR
   1354 # ifdef UINTPTR_MAX
   1355 #  define SCNxPTR "l" "x"
   1356 # endif
   1357 #endif
   1358 
   1359 /* 7.8.2 Functions for greatest-width integer types */
   1360 
   1361 #ifdef __cplusplus
   1362 extern "C" {
   1363 #endif
   1364 
   1365 #if 0
   1366 # if !1
   1367 extern intmax_t imaxabs (intmax_t);
   1368 # endif
   1369 #elif defined GNULIB_POSIXCHECK
   1370 # undef imaxabs
   1371 # if HAVE_RAW_DECL_IMAXABS
   1372 _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
   1373                  "use gnulib module imaxabs for portability");
   1374 # endif
   1375 #endif
   1376 
   1377 #if 0
   1378 # if !1
   1379 #  if !GNULIB_defined_imaxdiv_t
   1380 typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
   1381 #   define GNULIB_defined_imaxdiv_t 1
   1382 #  endif
   1383 extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
   1384 # endif
   1385 #elif defined GNULIB_POSIXCHECK
   1386 # undef imaxdiv
   1387 # if HAVE_RAW_DECL_IMAXDIV
   1388 _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
   1389                  "use gnulib module imaxdiv for portability");
   1390 # endif
   1391 #endif
   1392 
   1393 #if 0
   1394 # if 0
   1395 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
   1396 #   undef strtoimax
   1397 #   define strtoimax rpl_strtoimax
   1398 #  endif
   1399 _GL_FUNCDECL_RPL (strtoimax, intmax_t,
   1400                   (const char *, char **, int) _GL_ARG_NONNULL ((1)));
   1401 _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
   1402 # else
   1403 #  if !1
   1404 #   undef strtoimax
   1405 _GL_FUNCDECL_SYS (strtoimax, intmax_t,
   1406                   (const char *, char **, int) _GL_ARG_NONNULL ((1)));
   1407 #  endif
   1408 _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
   1409 # endif
   1410 _GL_CXXALIASWARN (strtoimax);
   1411 #elif defined GNULIB_POSIXCHECK
   1412 # undef strtoimax
   1413 # if HAVE_RAW_DECL_STRTOIMAX
   1414 _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
   1415                  "use gnulib module strtoimax for portability");
   1416 # endif
   1417 #endif
   1418 
   1419 #if 0
   1420 # if !1
   1421 #  undef strtoumax
   1422 _GL_FUNCDECL_SYS (strtoumax, uintmax_t,
   1423                   (const char *, char **, int) _GL_ARG_NONNULL ((1)));
   1424 # endif
   1425 _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
   1426 _GL_CXXALIASWARN (strtoumax);
   1427 #elif defined GNULIB_POSIXCHECK
   1428 # undef strtoumax
   1429 # if HAVE_RAW_DECL_STRTOUMAX
   1430 _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - "
   1431                  "use gnulib module strtoumax for portability");
   1432 # endif
   1433 #endif
   1434 
   1435 /* Don't bother defining or declaring wcstoimax and wcstoumax, since
   1436    wide-character functions like this are hardly ever useful.  */
   1437 
   1438 #ifdef __cplusplus
   1439 }
   1440 #endif
   1441 
   1442 #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */
   1443