105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Copyright (C) 2006-2012 Free Software Foundation, Inc.
305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Written by Paul Eggert, Bruno Haible, Derek Price.
405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This file is part of gnulib.
505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is free software: you can redistribute it and/or modify
705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   it under the terms of the GNU General Public License as published by
805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the Free Software Foundation; either version 3 of the License, or
905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (at your option) any later version.
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is distributed in the hope that it will be useful,
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   but WITHOUT ANY WARRANTY; without even the implied warranty of
1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   GNU General Public License for more details.
1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   You should have received a copy of the GNU General Public License
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang * ISO C 99 <inttypes.h> for platforms that lack it.
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if __GNUC__ >= 3
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#pragma GCC system_header
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Include the original <inttypes.h> if it exists, and if this file
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   has not been included yet or if this file includes gnulib stdint.h
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   which in turn includes this file.
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   The include_next requires a split double-inclusion guard.  */
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   /* Some pre-C++11 <stdint.h> implementations need this.  */
3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define __STDC_FORMAT_MACROS 1
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
4005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  include_next <inttypes.h>
4205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
4305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
4405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INTTYPES_H
4705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Include <stdint.h> or the gnulib replacement.
4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   But avoid namespace pollution on glibc systems.  */
5005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef __GLIBC__
5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <stdint.h>
5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
5305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get CHAR_BIT.  */
5405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <limits.h>
5505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
5705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
5805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
5905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
6105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_CXXDEFS_H
6205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_CXXDEFS_H
6305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The three most frequent use cases of these macros are:
6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   * For providing a substitute for a function that is missing on some
6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     platforms, but is declared and works fine on the platforms on which
6805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     it exists:
6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #if @GNULIB_FOO@
7105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # if !@HAVE_FOO@
7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_SYS (foo, ...);
7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # endif
7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_SYS (foo, ...);
7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIASWARN (foo);
7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #elif defined GNULIB_POSIXCHECK
7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ...
7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #endif
7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   * For providing a replacement for a function that exists on all platforms,
8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but is broken/insufficient and needs to be replaced on some platforms:
8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
8305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #if @GNULIB_FOO@
8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # if @REPLACE_FOO@
8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   undef foo
8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   define foo rpl_foo
8805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  endif
8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_RPL (foo, ...);
9005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_RPL (foo, ...);
9105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # else
9205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_SYS (foo, ...);
9305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # endif
9405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIASWARN (foo);
9505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #elif defined GNULIB_POSIXCHECK
9605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ...
9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #endif
9805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
9905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   * For providing a replacement for a function that exists on some platforms
10005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but is broken/insufficient and needs to be replaced on some of them and
10105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     is additionally either missing or undeclared on some other platforms:
10205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
10305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #if @GNULIB_FOO@
10405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # if @REPLACE_FOO@
10505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
10605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   undef foo
10705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   define foo rpl_foo
10805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  endif
10905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_RPL (foo, ...);
11005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_RPL (foo, ...);
11105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # else
11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
11305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_SYS (foo, ...);
11405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  endif
11505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_SYS (foo, ...);
11605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # endif
11705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIASWARN (foo);
11805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #elif defined GNULIB_POSIXCHECK
11905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ...
12005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #endif
12105436638acc7c010349a69c3395f1a57c642dc62Ying Wang*/
12205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
12305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_EXTERN_C declaration;
12405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   performs the declaration with C linkage.  */
12505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus
12605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_EXTERN_C extern "C"
12705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
12805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_EXTERN_C extern
12905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
13005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
13105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
13205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares a replacement function, named rpl_func, with the given prototype,
13305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   consisting of return type, parameters, and attributes.
13405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
13505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
13605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                  _GL_ARG_NONNULL ((1)));
13705436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
13805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
13905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
14005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
14105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
14205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
14305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares the system function, named func, with the given prototype,
14505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   consisting of return type, parameters, and attributes.
14605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
14705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
14805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                  _GL_ARG_NONNULL ((1)));
14905436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
15005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_EXTERN_C rettype func parameters_and_attributes
15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
15305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_RPL (func, rettype, parameters);
15405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares a C++ alias called GNULIB_NAMESPACE::func
15505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
15605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
15705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
15805436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
15905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
16005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
16105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
16205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
16305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                                \
16405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                         \
16505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      rettype (*const func) parameters = ::rpl_func;          \
16605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                         \
16705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
16805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
16905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
17005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
17105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
17205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
17305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
17405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
17505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   except that the C function rpl_func may have a slightly different
17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declaration.  A cast is used to silence the "invalid conversion" error
17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that would otherwise occur.  */
17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
17905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
18005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                                     \
18105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                              \
18205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      rettype (*const func) parameters =                           \
18305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
18405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                              \
18505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
18605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
18805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
19005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_SYS (func, rettype, parameters);
19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares a C++ alias called GNULIB_NAMESPACE::func
19305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that redirects to the system provided function func, if GNULIB_NAMESPACE
19405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is defined.
19505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
19605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
19705436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
19805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
19905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* If we were to write
20005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       rettype (*const func) parameters = ::func;
20105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
20205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     better (remove an indirection through a 'static' pointer variable),
20305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but then the _GL_CXXALIASWARN macro below would cause a warning not only
20405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
20505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
20605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                     \
20705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                              \
20805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      static rettype (*func) parameters = ::func;  \
20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                              \
21005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
21305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
21605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
21705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   except that the C function func may have a slightly different declaration.
21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   A cast is used to silence the "invalid conversion" error that would
22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   otherwise occur.  */
22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                          \
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                   \
22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      static rettype (*func) parameters =               \
22605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        reinterpret_cast<rettype(*)parameters>(::func); \
22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                   \
22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   except that the C function is picked among a set of overloaded functions,
23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   namely the one with rettype2 and parameters2.  Two consecutive casts
23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   are used to silence the "cannot find a match" and "invalid conversion"
23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   errors that would otherwise occur.  */
24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* The outer cast must be a reinterpret_cast.
24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     The inner cast: When the function is defined as a set of overloaded
24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     functions, it works as a static_cast<>, choosing the designated variant.
24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     When the function is defined as a single variant, it works as a
24505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
24605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
24705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                                                \
24805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                                         \
24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      static rettype (*func) parameters =                                     \
25005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        reinterpret_cast<rettype(*)parameters>(                               \
25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          (rettype2(*)parameters2)(::func));                                  \
25205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                                         \
25305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
25405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
25505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
25605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
25705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIASWARN (func);
26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   causes a warning to be emitted when ::func is used but not when
26105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
26205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   variants.  */
26305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
26405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN(func) \
26505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
26605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN_1(func,namespace) \
26705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN_2 (func, namespace)
26805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
26905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   we enable the warning only when not optimizing.  */
27005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !__OPTIMIZE__
27105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN_2(func,namespace) \
27205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_WARN_ON_USE (func, \
27305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                     "The symbol ::" #func " refers to the system function. " \
27405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                     "Use " #namespace "::" #func " instead.")
27505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
27605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN_2(func,namespace) \
27705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     extern __typeof__ (func) func
27805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
27905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN_2(func,namespace) \
28005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_EXTERN_C int _gl_cxxalias_dummy
28105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
28205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
28305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN(func) \
28405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
28505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
28605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
28705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
28805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   causes a warning to be emitted when the given overloaded variant of ::func
28905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is used but not when GNULIB_NAMESPACE::func is used.  */
29005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
29105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
29205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
29305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                        GNULIB_NAMESPACE)
29405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
29505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
29605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
29705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   we enable the warning only when not optimizing.  */
29805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !__OPTIMIZE__
29905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
30005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
30105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                         "The symbol ::" #func " refers to the system function. " \
30205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                         "Use " #namespace "::" #func " instead.")
30305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
30405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
30505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     extern __typeof__ (func) func
30605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
30705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
30805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_EXTERN_C int _gl_cxxalias_dummy
30905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
31005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
31105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
31205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
31305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
31405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
31505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* _GL_CXXDEFS_H */
31605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
31705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definition of _GL_ARG_NONNULL is copied here.  */
31805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
31905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that the values passed as arguments n, ..., m must be non-NULL pointers.
32005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
32105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_ARG_NONNULL
32205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
32305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
32405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
32505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_ARG_NONNULL(params)
32605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
32705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
32805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
32905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definition of _GL_WARN_ON_USE is copied here.  */
33005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_WARN_ON_USE
33105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
33205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
33305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* A compiler attribute is available in gcc versions 4.3.0 and later.  */
33405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE(function, message) \
33505436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern __typeof__ (function) function __attribute__ ((__warning__ (message)))
33605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
33705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Verify the existence of the function.  */
33805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE(function, message) \
33905436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern __typeof__ (function) function
34005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else /* Unsupported.  */
34105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE(function, message) \
34205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_EXTERN_C int _gl_warn_on_use
34305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
34405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
34505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
34605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
34705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like _GL_WARN_ON_USE (function, "string"), except that the function is
34805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declared with the given prototype, consisting of return type, parameters,
34905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   and attributes.
35005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
35105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   not work in this case.  */
35205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_WARN_ON_USE_CXX
35305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
35405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
35505436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern rettype function parameters_and_attributes \
35605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     __attribute__ ((__warning__ (msg)))
35705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
35805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Verify the existence of the function.  */
35905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
36005436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern rettype function parameters_and_attributes
36105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else /* Unsupported.  */
36205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
36305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_EXTERN_C int _gl_warn_on_use
36405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
36505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
36605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
36705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_WARN_EXTERN_C declaration;
36805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   performs the declaration with C linkage.  */
36905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_WARN_EXTERN_C
37005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined __cplusplus
37105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_EXTERN_C extern "C"
37205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
37305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_EXTERN_C extern
37405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
37505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
37605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
37705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.8.1 Macros for format specifiers */
37805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
37905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined _TNS_R_TARGET
38005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   /* Tandem NonStop R series and compatible platforms released before
38105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      July 2005 support %Ld but not %lld.  */
38205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _LONG_LONG_FORMAT_PREFIX "L"
38305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
38405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _LONG_LONG_FORMAT_PREFIX "ll"
38505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
38605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
38705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRId8 || 0
38805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRId8
38905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
39005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId8 "d"
39105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
39205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
39305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIi8 || 0
39405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIi8
39505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
39605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi8 "i"
39705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
39805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
39905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIo8 || 0
40005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIo8
40105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
40205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo8 "o"
40305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
40405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
40505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIu8 || 0
40605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIu8
40705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
40805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu8 "u"
40905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
41005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
41105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIx8 || 0
41205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIx8
41305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
41405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx8 "x"
41505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
41605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
41705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIX8 || 0
41805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIX8
41905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
42005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX8 "X"
42105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
42205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
42305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRId16 || 0
42405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRId16
42505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
42605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId16 "d"
42705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
42805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
42905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIi16 || 0
43005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIi16
43105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
43205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi16 "i"
43305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
43405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
43505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIo16 || 0
43605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIo16
43705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
43805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo16 "o"
43905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
44005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
44105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIu16 || 0
44205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIu16
44305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
44405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu16 "u"
44505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
44605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
44705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIx16 || 0
44805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIx16
44905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
45005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx16 "x"
45105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
45205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
45305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIX16 || 0
45405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIX16
45505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
45605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX16 "X"
45705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
45805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
45905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRId32 || 0
46005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRId32
46105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
46205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId32 "d"
46305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
46405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
46505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIi32 || 0
46605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIi32
46705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
46805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi32 "i"
46905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
47005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
47105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIo32 || 0
47205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIo32
47305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
47405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo32 "o"
47505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
47605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
47705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIu32 || 0
47805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIu32
47905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
48005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu32 "u"
48105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
48205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
48305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIx32 || 0
48405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIx32
48505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
48605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx32 "x"
48705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIX32 || 0
49005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIX32
49105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
49205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX32 "X"
49305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
49505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
49605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (0 ? defined _LP64 : 1)
49705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRI64_PREFIX "l"
49805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
49905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRI64_PREFIX "I64"
50005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif 1 && LONG_MAX >> 30 == 1
50105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
50205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
50305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRId64 || 0
50405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRId64
50505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId64 _PRI64_PREFIX "d"
50605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
50705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIi64 || 0
50805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIi64
50905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi64 _PRI64_PREFIX "i"
51005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
51105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
51205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
51305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (0 ? defined _LP64 : 1)
51405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRIu64_PREFIX "l"
51505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
51605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRIu64_PREFIX "I64"
51705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif 1 && ULONG_MAX >> 31 == 1
51805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
51905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
52005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIo64 || 0
52105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIo64
52205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo64 _PRIu64_PREFIX "o"
52305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
52405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIu64 || 0
52505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIu64
52605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu64 _PRIu64_PREFIX "u"
52705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIx64 || 0
52905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIx64
53005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx64 _PRIu64_PREFIX "x"
53105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
53205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIX64 || 0
53305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIX64
53405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX64 _PRIu64_PREFIX "X"
53505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
53605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
53705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
53805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdLEAST8 || 0
53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdLEAST8
54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIdLEAST8 "d"
54105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
54205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiLEAST8 || 0
54305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiLEAST8
54405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIiLEAST8 "i"
54505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoLEAST8 || 0
54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoLEAST8
54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIoLEAST8 "o"
54905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
55005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuLEAST8 || 0
55105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuLEAST8
55205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIuLEAST8 "u"
55305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
55405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxLEAST8 || 0
55505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxLEAST8
55605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIxLEAST8 "x"
55705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
55805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXLEAST8 || 0
55905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXLEAST8
56005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIXLEAST8 "X"
56105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
56205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdLEAST16 || 0
56305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdLEAST16
56405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIdLEAST16 "d"
56505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
56605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiLEAST16 || 0
56705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiLEAST16
56805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIiLEAST16 "i"
56905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoLEAST16 || 0
57105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoLEAST16
57205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIoLEAST16 "o"
57305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
57405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuLEAST16 || 0
57505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuLEAST16
57605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIuLEAST16 "u"
57705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
57805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxLEAST16 || 0
57905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxLEAST16
58005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIxLEAST16 "x"
58105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
58205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXLEAST16 || 0
58305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXLEAST16
58405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIXLEAST16 "X"
58505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
58605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdLEAST32 || 0
58705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdLEAST32
58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIdLEAST32 "d"
58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiLEAST32 || 0
59105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiLEAST32
59205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIiLEAST32 "i"
59305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
59405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoLEAST32 || 0
59505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoLEAST32
59605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIoLEAST32 "o"
59705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
59805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuLEAST32 || 0
59905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuLEAST32
60005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIuLEAST32 "u"
60105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
60205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxLEAST32 || 0
60305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxLEAST32
60405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIxLEAST32 "x"
60505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
60605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXLEAST32 || 0
60705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXLEAST32
60805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIXLEAST32 "X"
60905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
61005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
61105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIdLEAST64 || 0
61205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIdLEAST64
61305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdLEAST64 PRId64
61405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
61505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIiLEAST64 || 0
61605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIiLEAST64
61705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiLEAST64 PRIi64
61805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
61905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
62005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
62105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIoLEAST64 || 0
62205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIoLEAST64
62305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoLEAST64 PRIo64
62405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
62505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIuLEAST64 || 0
62605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIuLEAST64
62705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuLEAST64 PRIu64
62805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
62905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIxLEAST64 || 0
63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIxLEAST64
63105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxLEAST64 PRIx64
63205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
63305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIXLEAST64 || 0
63405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIXLEAST64
63505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXLEAST64 PRIX64
63605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
63705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
63805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
63905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdFAST8 || 0
64005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdFAST8
64105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
64205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST8 PRId64
64305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
64405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST8 "d"
64505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
64605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
64705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiFAST8 || 0
64805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiFAST8
64905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
65005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST8 PRIi64
65105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
65205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST8 "i"
65305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
65405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
65505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoFAST8 || 0
65605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoFAST8
65705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
65805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST8 PRIo64
65905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
66005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST8 "o"
66105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
66205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
66305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuFAST8 || 0
66405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuFAST8
66505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
66605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST8 PRIu64
66705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
66805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST8 "u"
66905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
67005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
67105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxFAST8 || 0
67205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxFAST8
67305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
67405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST8 PRIx64
67505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
67605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST8 "x"
67705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
67805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
67905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXFAST8 || 0
68005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXFAST8
68105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
68205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST8 PRIX64
68305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
68405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST8 "X"
68505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
68605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
68705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdFAST16 || 0
68805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdFAST16
68905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
69005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST16 PRId64
69105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
69205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST16 "d"
69305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
69405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
69505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiFAST16 || 0
69605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiFAST16
69705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
69805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST16 PRIi64
69905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
70005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST16 "i"
70105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
70205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
70305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoFAST16 || 0
70405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoFAST16
70505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
70605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST16 PRIo64
70705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
70805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST16 "o"
70905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
71005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
71105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuFAST16 || 0
71205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuFAST16
71305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
71405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST16 PRIu64
71505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
71605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST16 "u"
71705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
71805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
71905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxFAST16 || 0
72005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxFAST16
72105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
72205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST16 PRIx64
72305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
72405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST16 "x"
72505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
72605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
72705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXFAST16 || 0
72805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXFAST16
72905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
73005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST16 PRIX64
73105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
73205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST16 "X"
73305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
73405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
73505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdFAST32 || 0
73605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdFAST32
73705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
73805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST32 PRId64
73905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
74005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST32 "d"
74105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
74205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
74305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiFAST32 || 0
74405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiFAST32
74505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
74605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST32 PRIi64
74705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
74805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST32 "i"
74905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
75005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
75105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoFAST32 || 0
75205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoFAST32
75305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
75405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST32 PRIo64
75505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
75605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST32 "o"
75705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
75805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
75905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuFAST32 || 0
76005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuFAST32
76105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
76205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST32 PRIu64
76305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
76405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST32 "u"
76505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
76605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
76705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxFAST32 || 0
76805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxFAST32
76905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
77005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST32 PRIx64
77105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
77205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST32 "x"
77305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
77405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
77505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXFAST32 || 0
77605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXFAST32
77705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
77805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST32 PRIX64
77905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
78005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST32 "X"
78105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
78205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
78305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
78405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIdFAST64 || 0
78505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIdFAST64
78605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST64 PRId64
78705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
78805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIiFAST64 || 0
78905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIiFAST64
79005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST64 PRIi64
79105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
79205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
79305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
79405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIoFAST64 || 0
79505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIoFAST64
79605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST64 PRIo64
79705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
79805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIuFAST64 || 0
79905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIuFAST64
80005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST64 PRIu64
80105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
80205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIxFAST64 || 0
80305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIxFAST64
80405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST64 PRIx64
80505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
80605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIXFAST64 || 0
80705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIXFAST64
80805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST64 PRIX64
80905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
81005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
81105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
81205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdMAX || 0
81305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdMAX
81405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
81505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdMAX PRId64
81605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
81705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdMAX "ld"
81805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
81905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
82005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiMAX || 0
82105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiMAX
82205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
82305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiMAX PRIi64
82405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
82505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiMAX "li"
82605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
82705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
82805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoMAX || 0
82905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoMAX
83005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
83105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoMAX PRIo64
83205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
83305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoMAX "lo"
83405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
83505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
83605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuMAX || 0
83705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuMAX
83805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
83905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuMAX PRIu64
84005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
84105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuMAX "lu"
84205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
84305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
84405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxMAX || 0
84505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxMAX
84605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
84705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxMAX PRIx64
84805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
84905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxMAX "lx"
85005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
85105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
85205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXMAX || 0
85305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXMAX
85405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
85505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXMAX PRIX64
85605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
85705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXMAX "lX"
85805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
85905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
86005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
86105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdPTR || 0
86205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdPTR
86305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
86405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdPTR "l" "d"
86505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
86605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
86705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiPTR || 0
86805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiPTR
86905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
87005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiPTR "l" "i"
87105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
87205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
87305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoPTR || 0
87405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoPTR
87505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
87605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoPTR "l" "o"
87705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
87805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
87905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuPTR || 0
88005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuPTR
88105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
88205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuPTR "l" "u"
88305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
88405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
88505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxPTR || 0
88605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxPTR
88705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
88805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxPTR "l" "x"
88905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
89005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
89105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXPTR || 0
89205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXPTR
89305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
89405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXPTR "l" "X"
89505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
89605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
89705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
89805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNd8 || 0
89905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNd8
90005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
90105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd8 "hhd"
90205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
90305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
90405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNi8 || 0
90505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNi8
90605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
90705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi8 "hhi"
90805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
90905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
91005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNo8 || 0
91105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNo8
91205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
91305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo8 "hho"
91405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
91505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
91605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNu8 || 0
91705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNu8
91805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
91905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu8 "hhu"
92005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
92105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
92205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNx8 || 0
92305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNx8
92405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
92505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx8 "hhx"
92605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
92705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
92805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNd16 || 0
92905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNd16
93005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
93105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd16 "hd"
93205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
93305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
93405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNi16 || 0
93505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNi16
93605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
93705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi16 "hi"
93805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
93905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
94005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNo16 || 0
94105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNo16
94205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
94305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo16 "ho"
94405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
94505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
94605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNu16 || 0
94705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNu16
94805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
94905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu16 "hu"
95005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
95105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
95205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNx16 || 0
95305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNx16
95405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
95505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx16 "hx"
95605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
95705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
95805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNd32 || 0
95905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNd32
96005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
96105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd32 "d"
96205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
96305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
96405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNi32 || 0
96505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNi32
96605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
96705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi32 "i"
96805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
96905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
97005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNo32 || 0
97105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNo32
97205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
97305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo32 "o"
97405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
97505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
97605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNu32 || 0
97705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNu32
97805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
97905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu32 "u"
98005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
98105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
98205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNx32 || 0
98305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNx32
98405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
98505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx32 "x"
98605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
98705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
98805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
98905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (0 ? defined _LP64 : 1)
99005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCN64_PREFIX "l"
99105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
99205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCN64_PREFIX "I64"
99305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif 1 && LONG_MAX >> 30 == 1
99405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
99505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
99605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNd64 || 0
99705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNd64
99805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd64 _SCN64_PREFIX "d"
99905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
100005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNi64 || 0
100105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNi64
100205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi64 _SCN64_PREFIX "i"
100305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
100405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
100505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
100605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (0 ? defined _LP64 : 1)
100705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCNu64_PREFIX "l"
100805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
100905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCNu64_PREFIX "I64"
101005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif 1 && ULONG_MAX >> 31 == 1
101105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
101205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
101305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNo64 || 0
101405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNo64
101505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo64 _SCNu64_PREFIX "o"
101605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
101705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNu64 || 0
101805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNu64
101905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu64 _SCNu64_PREFIX "u"
102005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
102105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNx64 || 0
102205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNx64
102305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx64 _SCNu64_PREFIX "x"
102405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
102505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
102605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
102705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdLEAST8 || 0
102805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdLEAST8
102905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNdLEAST8 "hhd"
103005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
103105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiLEAST8 || 0
103205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiLEAST8
103305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNiLEAST8 "hhi"
103405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
103505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoLEAST8 || 0
103605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoLEAST8
103705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNoLEAST8 "hho"
103805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
103905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuLEAST8 || 0
104005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuLEAST8
104105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNuLEAST8 "hhu"
104205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
104305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxLEAST8 || 0
104405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxLEAST8
104505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNxLEAST8 "hhx"
104605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
104705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdLEAST16 || 0
104805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdLEAST16
104905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNdLEAST16 "hd"
105005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
105105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiLEAST16 || 0
105205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiLEAST16
105305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNiLEAST16 "hi"
105405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
105505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoLEAST16 || 0
105605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoLEAST16
105705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNoLEAST16 "ho"
105805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
105905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuLEAST16 || 0
106005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuLEAST16
106105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNuLEAST16 "hu"
106205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
106305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxLEAST16 || 0
106405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxLEAST16
106505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNxLEAST16 "hx"
106605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
106705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdLEAST32 || 0
106805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdLEAST32
106905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNdLEAST32 "d"
107005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
107105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiLEAST32 || 0
107205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiLEAST32
107305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNiLEAST32 "i"
107405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
107505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoLEAST32 || 0
107605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoLEAST32
107705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNoLEAST32 "o"
107805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
107905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuLEAST32 || 0
108005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuLEAST32
108105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNuLEAST32 "u"
108205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
108305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxLEAST32 || 0
108405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxLEAST32
108505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNxLEAST32 "x"
108605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
108705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
108805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNdLEAST64 || 0
108905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNdLEAST64
109005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdLEAST64 SCNd64
109105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
109205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNiLEAST64 || 0
109305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNiLEAST64
109405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiLEAST64 SCNi64
109505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
109605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
109705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
109805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNoLEAST64 || 0
109905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNoLEAST64
110005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoLEAST64 SCNo64
110105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
110205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNuLEAST64 || 0
110305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNuLEAST64
110405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuLEAST64 SCNu64
110505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
110605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNxLEAST64 || 0
110705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNxLEAST64
110805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxLEAST64 SCNx64
110905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
111005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
111105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
111205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdFAST8 || 0
111305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdFAST8
111405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
111505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 SCNd64
111605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7fff
111705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 "hd"
111805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7f
111905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 "hhd"
112005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
112105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 "d"
112205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
112305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
112405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiFAST8 || 0
112505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiFAST8
112605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
112705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 SCNi64
112805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7fff
112905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 "hi"
113005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7f
113105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 "hhi"
113205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
113305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 "i"
113405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
113505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
113605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoFAST8 || 0
113705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoFAST8
113805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
113905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 SCNo64
114005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xffff
114105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 "ho"
114205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xff
114305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 "hho"
114405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
114505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 "o"
114605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
114705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
114805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuFAST8 || 0
114905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuFAST8
115005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
115105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 SCNu64
115205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xffff
115305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 "hu"
115405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xff
115505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 "hhu"
115605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
115705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 "u"
115805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
115905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
116005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxFAST8 || 0
116105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxFAST8
116205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
116305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 SCNx64
116405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xffff
116505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 "hx"
116605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xff
116705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 "hhx"
116805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
116905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 "x"
117005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
117105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
117205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdFAST16 || 0
117305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdFAST16
117405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
117505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST16 SCNd64
117605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST16_MAX == 0x7fff
117705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST16 "hd"
117805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
117905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST16 "d"
118005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
118105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
118205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiFAST16 || 0
118305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiFAST16
118405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
118505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST16 SCNi64
118605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST16_MAX == 0x7fff
118705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST16 "hi"
118805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
118905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST16 "i"
119005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
119105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
119205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoFAST16 || 0
119305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoFAST16
119405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
119505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST16 SCNo64
119605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST16_MAX == 0xffff
119705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST16 "ho"
119805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
119905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST16 "o"
120005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
120105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
120205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuFAST16 || 0
120305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuFAST16
120405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
120505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST16 SCNu64
120605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST16_MAX == 0xffff
120705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST16 "hu"
120805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
120905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST16 "u"
121005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
121105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
121205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxFAST16 || 0
121305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxFAST16
121405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
121505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST16 SCNx64
121605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST16_MAX == 0xffff
121705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST16 "hx"
121805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
121905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST16 "x"
122005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
122105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
122205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdFAST32 || 0
122305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdFAST32
122405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
122505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST32 SCNd64
122605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
122705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST32 "d"
122805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
122905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
123005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiFAST32 || 0
123105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiFAST32
123205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
123305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST32 SCNi64
123405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
123505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST32 "i"
123605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
123705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
123805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoFAST32 || 0
123905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoFAST32
124005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
124105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST32 SCNo64
124205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
124305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST32 "o"
124405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
124505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
124605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuFAST32 || 0
124705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuFAST32
124805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
124905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST32 SCNu64
125005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
125105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST32 "u"
125205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
125305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
125405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxFAST32 || 0
125505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxFAST32
125605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
125705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST32 SCNx64
125805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
125905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST32 "x"
126005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
126105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
126205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
126305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNdFAST64 || 0
126405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNdFAST64
126505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST64 SCNd64
126605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
126705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNiFAST64 || 0
126805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNiFAST64
126905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST64 SCNi64
127005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
127105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
127205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
127305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNoFAST64 || 0
127405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNoFAST64
127505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST64 SCNo64
127605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
127705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNuFAST64 || 0
127805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNuFAST64
127905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST64 SCNu64
128005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
128105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNxFAST64 || 0
128205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNxFAST64
128305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST64 SCNx64
128405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
128505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
128605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
128705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdMAX || 0
128805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdMAX
128905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
129005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdMAX SCNd64
129105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
129205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdMAX "ld"
129305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
129405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
129505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiMAX || 0
129605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiMAX
129705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
129805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiMAX SCNi64
129905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
130005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiMAX "li"
130105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
130205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
130305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoMAX || 0
130405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoMAX
130505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
130605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoMAX SCNo64
130705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
130805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoMAX "lo"
130905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
131005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
131105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuMAX || 0
131205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuMAX
131305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
131405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuMAX SCNu64
131505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
131605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuMAX "lu"
131705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
131805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
131905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxMAX || 0
132005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxMAX
132105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
132205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxMAX SCNx64
132305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
132405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxMAX "lx"
132505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
132605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
132705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
132805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdPTR || 0
132905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdPTR
133005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
133105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdPTR "l" "d"
133205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
133305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
133405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiPTR || 0
133505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiPTR
133605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
133705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiPTR "l" "i"
133805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
133905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
134005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoPTR || 0
134105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoPTR
134205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
134305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoPTR "l" "o"
134405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
134505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
134605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuPTR || 0
134705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuPTR
134805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
134905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuPTR "l" "u"
135005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
135105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
135205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxPTR || 0
135305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxPTR
135405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
135505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxPTR "l" "x"
135605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
135705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
135805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
135905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.8.2 Functions for greatest-width integer types */
136005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
136105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
136205436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern "C" {
136305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
136405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
136505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
136605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
136705436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern intmax_t imaxabs (intmax_t);
136805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
136905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
137005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef imaxabs
137105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_IMAXABS
137205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
137305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module imaxabs for portability");
137405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
137505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
137605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
137705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
137805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
137905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !GNULIB_defined_imaxdiv_t
138005436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
138105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define GNULIB_defined_imaxdiv_t 1
138205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
138305436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern imaxdiv_t imaxdiv (intmax_t, intmax_t);
138405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
138505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
138605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef imaxdiv
138705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_IMAXDIV
138805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
138905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module imaxdiv for portability");
139005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
139105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
139205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
139305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
139405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
139505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
139605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef strtoimax
139705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define strtoimax rpl_strtoimax
139805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
139905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (strtoimax, intmax_t,
140005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
140105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
140205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
140305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
140405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef strtoimax
140505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (strtoimax, intmax_t,
140605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
140705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
140805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
140905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
141005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (strtoimax);
141105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
141205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef strtoimax
141305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_STRTOIMAX
141405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
141505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module strtoimax for portability");
141605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
141705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
141805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
141905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
142005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
142105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef strtoumax
142205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (strtoumax, uintmax_t,
142305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
142405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
142505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
142605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (strtoumax);
142705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
142805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef strtoumax
142905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_STRTOUMAX
143005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - "
143105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module strtoumax for portability");
143205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
143305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
143405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
143505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Don't bother defining or declaring wcstoimax and wcstoumax, since
143605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   wide-character functions like this are hardly ever useful.  */
143705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
143805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
143905436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
144005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
144105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
144205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */
1443