105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Copyright (C) 2006-2012 Free Software Foundation, Inc.
205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Written by Paul Eggert, Bruno Haible, Derek Price.
305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This file is part of gnulib.
405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is free software: you can redistribute it and/or modify
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   it under the terms of the GNU General Public License as published by
705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the Free Software Foundation; either version 3 of the License, or
805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (at your option) any later version.
905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is distributed in the hope that it will be useful,
1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   but WITHOUT ANY WARRANTY; without even the implied warranty of
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   GNU General Public License for more details.
1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   You should have received a copy of the GNU General Public License
1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang * ISO C 99 <inttypes.h> for platforms that lack it.
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if __GNUC__ >= 3
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang@PRAGMA_SYSTEM_HEADER@
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang@PRAGMA_COLUMNS@
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Include the original <inttypes.h> if it exists, and if this file
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   has not been included yet or if this file includes gnulib stdint.h
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   which in turn includes this file.
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   The include_next requires a split double-inclusion guard.  */
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @HAVE_INTTYPES_H@
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   /* Some pre-C++11 <stdint.h> implementations need this.  */
3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define __STDC_FORMAT_MACROS 1
3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  @INCLUDE_NEXT@ @NEXT_INTTYPES_H@
4105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
4205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
4305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INTTYPES_H
4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Include <stdint.h> or the gnulib replacement.
4805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   But avoid namespace pollution on glibc systems.  */
4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef __GLIBC__
5005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <stdint.h>
5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get CHAR_BIT.  */
5305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <limits.h>
5405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
5705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
5805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
6005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definition of _GL_ARG_NONNULL is copied here.  */
6205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definition of _GL_WARN_ON_USE is copied here.  */
6405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.8.1 Macros for format specifiers */
6605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined _TNS_R_TARGET
6805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   /* Tandem NonStop R series and compatible platforms released before
6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      July 2005 support %Ld but not %lld.  */
7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _LONG_LONG_FORMAT_PREFIX "L"
7105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _LONG_LONG_FORMAT_PREFIX "ll"
7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRId8 || @PRI_MACROS_BROKEN@
7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRId8
7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId8 "d"
7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIi8 || @PRI_MACROS_BROKEN@
8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIi8
8305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi8 "i"
8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIo8 || @PRI_MACROS_BROKEN@
8805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIo8
8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
9005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo8 "o"
9105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
9205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
9305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIu8 || @PRI_MACROS_BROKEN@
9405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIu8
9505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
9605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu8 "u"
9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
9805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
9905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIx8 || @PRI_MACROS_BROKEN@
10005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIx8
10105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
10205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx8 "x"
10305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
10405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
10505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIX8 || @PRI_MACROS_BROKEN@
10605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIX8
10705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
10805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX8 "X"
10905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
11005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
11105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRId16 || @PRI_MACROS_BROKEN@
11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRId16
11305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
11405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId16 "d"
11505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
11605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
11705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIi16 || @PRI_MACROS_BROKEN@
11805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIi16
11905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
12005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi16 "i"
12105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
12205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
12305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIo16 || @PRI_MACROS_BROKEN@
12405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIo16
12505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
12605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo16 "o"
12705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
12805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
12905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIu16 || @PRI_MACROS_BROKEN@
13005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIu16
13105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
13205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu16 "u"
13305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
13405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
13505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIx16 || @PRI_MACROS_BROKEN@
13605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIx16
13705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
13805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx16 "x"
13905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
14005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
14105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIX16 || @PRI_MACROS_BROKEN@
14205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIX16
14305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX16 "X"
14505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
14605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
14705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRId32 || @PRI_MACROS_BROKEN@
14805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRId32
14905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
15005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId32 "d"
15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
15305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIi32 || @PRI_MACROS_BROKEN@
15405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIi32
15505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
15605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi32 "i"
15705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
15805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
15905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIo32 || @PRI_MACROS_BROKEN@
16005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIo32
16105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
16205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo32 "o"
16305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
16405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
16505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIu32 || @PRI_MACROS_BROKEN@
16605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIu32
16705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
16805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu32 "u"
16905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
17005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
17105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIx32 || @PRI_MACROS_BROKEN@
17205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIx32
17305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
17405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx32 "x"
17505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIX32 || @PRI_MACROS_BROKEN@
17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIX32
17905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
18005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX32 "X"
18105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
18205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
18305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
18405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
18505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRI64_PREFIX "l"
18605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRI64_PREFIX "I64"
18805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
19005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRId64 || @PRI_MACROS_BROKEN@
19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRId64
19305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRId64 _PRI64_PREFIX "d"
19405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
19505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIi64 || @PRI_MACROS_BROKEN@
19605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIi64
19705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIi64 _PRI64_PREFIX "i"
19805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
19905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
20005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
20105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
20205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRIu64_PREFIX "l"
20305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
20405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRIu64_PREFIX "I64"
20505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
20605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
20705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
20805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIo64 || @PRI_MACROS_BROKEN@
20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIo64
21005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIo64 _PRIu64_PREFIX "o"
21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIu64 || @PRI_MACROS_BROKEN@
21305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIu64
21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIu64 _PRIu64_PREFIX "u"
21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
21605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIx64 || @PRI_MACROS_BROKEN@
21705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIx64
21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIx64 _PRIu64_PREFIX "x"
21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIX64 || @PRI_MACROS_BROKEN@
22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIX64
22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIX64 _PRIu64_PREFIX "X"
22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
22605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@
22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdLEAST8
22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIdLEAST8 "d"
22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@
23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiLEAST8
23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIiLEAST8 "i"
23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@
23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoLEAST8
23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIoLEAST8 "o"
23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@
23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuLEAST8
24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIuLEAST8 "u"
24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@
24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxLEAST8
24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIxLEAST8 "x"
24505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
24605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@
24705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXLEAST8
24805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIXLEAST8 "X"
24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
25005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@
25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdLEAST16
25205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIdLEAST16 "d"
25305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
25405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@
25505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiLEAST16
25605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIiLEAST16 "i"
25705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@
25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoLEAST16
26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIoLEAST16 "o"
26105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
26205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@
26305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuLEAST16
26405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIuLEAST16 "u"
26505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
26605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@
26705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxLEAST16
26805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIxLEAST16 "x"
26905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
27005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@
27105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXLEAST16
27205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIXLEAST16 "X"
27305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
27405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@
27505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdLEAST32
27605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIdLEAST32 "d"
27705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
27805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@
27905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiLEAST32
28005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIiLEAST32 "i"
28105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
28205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@
28305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoLEAST32
28405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIoLEAST32 "o"
28505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
28605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@
28705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuLEAST32
28805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIuLEAST32 "u"
28905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
29005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@
29105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxLEAST32
29205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIxLEAST32 "x"
29305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
29405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@
29505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXLEAST32
29605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PRIXLEAST32 "X"
29705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
29805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
29905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@
30005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIdLEAST64
30105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdLEAST64 PRId64
30205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
30305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@
30405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIiLEAST64
30505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiLEAST64 PRIi64
30605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
30705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
30805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
30905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@
31005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIoLEAST64
31105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoLEAST64 PRIo64
31205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
31305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@
31405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIuLEAST64
31505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuLEAST64 PRIu64
31605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
31705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@
31805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIxLEAST64
31905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxLEAST64 PRIx64
32005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
32105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@
32205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIXLEAST64
32305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXLEAST64 PRIX64
32405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
32505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
32605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
32705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@
32805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdFAST8
32905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
33005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST8 PRId64
33105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
33205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST8 "d"
33305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
33405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
33505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@
33605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiFAST8
33705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
33805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST8 PRIi64
33905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
34005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST8 "i"
34105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
34205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
34305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@
34405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoFAST8
34505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
34605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST8 PRIo64
34705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
34805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST8 "o"
34905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
35005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
35105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@
35205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuFAST8
35305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
35405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST8 PRIu64
35505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
35605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST8 "u"
35705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
35805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
35905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@
36005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxFAST8
36105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
36205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST8 PRIx64
36305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
36405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST8 "x"
36505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
36605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
36705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@
36805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXFAST8
36905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
37005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST8 PRIX64
37105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
37205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST8 "X"
37305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
37405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
37505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@
37605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdFAST16
37705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
37805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST16 PRId64
37905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
38005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST16 "d"
38105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
38205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
38305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@
38405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiFAST16
38505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
38605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST16 PRIi64
38705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
38805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST16 "i"
38905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
39005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
39105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@
39205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoFAST16
39305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
39405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST16 PRIo64
39505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
39605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST16 "o"
39705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
39805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
39905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@
40005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuFAST16
40105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
40205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST16 PRIu64
40305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
40405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST16 "u"
40505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
40605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
40705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@
40805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxFAST16
40905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
41005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST16 PRIx64
41105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
41205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST16 "x"
41305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
41405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
41505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@
41605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXFAST16
41705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
41805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST16 PRIX64
41905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
42005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST16 "X"
42105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
42205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
42305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@
42405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdFAST32
42505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
42605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST32 PRId64
42705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
42805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST32 "d"
42905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
43005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
43105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@
43205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiFAST32
43305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
43405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST32 PRIi64
43505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
43605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST32 "i"
43705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
43805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
43905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@
44005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoFAST32
44105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
44205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST32 PRIo64
44305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
44405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST32 "o"
44505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
44605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
44705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@
44805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuFAST32
44905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
45005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST32 PRIu64
45105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
45205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST32 "u"
45305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
45405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
45505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@
45605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxFAST32
45705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
45805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST32 PRIx64
45905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
46005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST32 "x"
46105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
46205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
46305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@
46405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXFAST32
46505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
46605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST32 PRIX64
46705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
46805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST32 "X"
46905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
47005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
47105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
47205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@
47305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIdFAST64
47405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdFAST64 PRId64
47505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
47605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@
47705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIiFAST64
47805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiFAST64 PRIi64
47905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
48005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
48105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
48205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@
48305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIoFAST64
48405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoFAST64 PRIo64
48505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
48605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@
48705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIuFAST64
48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuFAST64 PRIu64
48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
49005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@
49105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIxFAST64
49205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxFAST64 PRIx64
49305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@
49505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef PRIXFAST64
49605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXFAST64 PRIX64
49705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
49805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
49905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
50005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdMAX || @PRI_MACROS_BROKEN@
50105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdMAX
50205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @INT32_MAX_LT_INTMAX_MAX@
50305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdMAX PRId64
50405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
50505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdMAX "ld"
50605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
50705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
50805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiMAX || @PRI_MACROS_BROKEN@
50905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiMAX
51005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @INT32_MAX_LT_INTMAX_MAX@
51105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiMAX PRIi64
51205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
51305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiMAX "li"
51405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
51505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
51605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoMAX || @PRI_MACROS_BROKEN@
51705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoMAX
51805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
51905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoMAX PRIo64
52005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
52105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoMAX "lo"
52205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
52305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
52405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuMAX || @PRI_MACROS_BROKEN@
52505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuMAX
52605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
52705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuMAX PRIu64
52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
52905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuMAX "lu"
53005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
53105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
53205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxMAX || @PRI_MACROS_BROKEN@
53305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxMAX
53405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
53505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxMAX PRIx64
53605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
53705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxMAX "lx"
53805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXMAX || @PRI_MACROS_BROKEN@
54105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXMAX
54205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
54305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXMAX PRIX64
54405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
54505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXMAX "lX"
54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
54905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIdPTR || @PRI_MACROS_BROKEN@
55005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIdPTR
55105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
55205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIdPTR @PRIPTR_PREFIX@ "d"
55305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
55405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
55505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIiPTR || @PRI_MACROS_BROKEN@
55605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIiPTR
55705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
55805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIiPTR @PRIPTR_PREFIX@ "i"
55905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
56005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
56105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIoPTR || @PRI_MACROS_BROKEN@
56205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIoPTR
56305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
56405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIoPTR @PRIPTR_PREFIX@ "o"
56505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
56605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
56705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIuPTR || @PRI_MACROS_BROKEN@
56805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIuPTR
56905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIuPTR @PRIPTR_PREFIX@ "u"
57105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
57205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
57305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIxPTR || @PRI_MACROS_BROKEN@
57405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIxPTR
57505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
57605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIxPTR @PRIPTR_PREFIX@ "x"
57705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
57805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
57905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined PRIXPTR || @PRI_MACROS_BROKEN@
58005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef PRIXPTR
58105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
58205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define PRIXPTR @PRIPTR_PREFIX@ "X"
58305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
58405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
58505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
58605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNd8 || @PRI_MACROS_BROKEN@
58705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNd8
58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd8 "hhd"
59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
59105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
59205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNi8 || @PRI_MACROS_BROKEN@
59305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNi8
59405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT8_MAX
59505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi8 "hhi"
59605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
59705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
59805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNo8 || @PRI_MACROS_BROKEN@
59905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNo8
60005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
60105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo8 "hho"
60205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
60305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
60405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNu8 || @PRI_MACROS_BROKEN@
60505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNu8
60605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
60705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu8 "hhu"
60805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
60905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
61005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNx8 || @PRI_MACROS_BROKEN@
61105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNx8
61205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT8_MAX
61305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx8 "hhx"
61405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
61505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
61605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNd16 || @PRI_MACROS_BROKEN@
61705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNd16
61805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
61905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd16 "hd"
62005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
62105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
62205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNi16 || @PRI_MACROS_BROKEN@
62305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNi16
62405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT16_MAX
62505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi16 "hi"
62605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
62705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
62805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNo16 || @PRI_MACROS_BROKEN@
62905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNo16
63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
63105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo16 "ho"
63205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
63305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
63405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNu16 || @PRI_MACROS_BROKEN@
63505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNu16
63605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
63705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu16 "hu"
63805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
63905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
64005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNx16 || @PRI_MACROS_BROKEN@
64105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNx16
64205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT16_MAX
64305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx16 "hx"
64405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
64505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
64605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNd32 || @PRI_MACROS_BROKEN@
64705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNd32
64805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
64905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd32 "d"
65005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
65105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
65205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNi32 || @PRI_MACROS_BROKEN@
65305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNi32
65405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT32_MAX
65505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi32 "i"
65605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
65705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
65805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNo32 || @PRI_MACROS_BROKEN@
65905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNo32
66005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
66105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo32 "o"
66205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
66305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
66405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNu32 || @PRI_MACROS_BROKEN@
66505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNu32
66605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
66705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu32 "u"
66805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
66905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
67005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNx32 || @PRI_MACROS_BROKEN@
67105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNx32
67205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT32_MAX
67305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx32 "x"
67405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
67505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
67605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
67705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
67805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCN64_PREFIX "l"
67905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
68005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCN64_PREFIX "I64"
68105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
68205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
68305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
68405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNd64 || @PRI_MACROS_BROKEN@
68505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNd64
68605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNd64 _SCN64_PREFIX "d"
68705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
68805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNi64 || @PRI_MACROS_BROKEN@
68905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNi64
69005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNi64 _SCN64_PREFIX "i"
69105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
69205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
69305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
69405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
69505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCNu64_PREFIX "l"
69605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER || defined __MINGW32__
69705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCNu64_PREFIX "I64"
69805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
69905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
70005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
70105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNo64 || @PRI_MACROS_BROKEN@
70205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNo64
70305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNo64 _SCNu64_PREFIX "o"
70405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
70505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNu64 || @PRI_MACROS_BROKEN@
70605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNu64
70705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNu64 _SCNu64_PREFIX "u"
70805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
70905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNx64 || @PRI_MACROS_BROKEN@
71005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNx64
71105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNx64 _SCNu64_PREFIX "x"
71205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
71305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
71405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
71505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@
71605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdLEAST8
71705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNdLEAST8 "hhd"
71805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
71905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@
72005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiLEAST8
72105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNiLEAST8 "hhi"
72205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
72305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@
72405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoLEAST8
72505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNoLEAST8 "hho"
72605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
72705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@
72805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuLEAST8
72905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNuLEAST8 "hhu"
73005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
73105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@
73205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxLEAST8
73305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNxLEAST8 "hhx"
73405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
73505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@
73605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdLEAST16
73705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNdLEAST16 "hd"
73805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
73905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@
74005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiLEAST16
74105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNiLEAST16 "hi"
74205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
74305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@
74405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoLEAST16
74505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNoLEAST16 "ho"
74605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
74705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@
74805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuLEAST16
74905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNuLEAST16 "hu"
75005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
75105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@
75205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxLEAST16
75305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNxLEAST16 "hx"
75405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
75505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@
75605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdLEAST32
75705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNdLEAST32 "d"
75805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
75905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@
76005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiLEAST32
76105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNiLEAST32 "i"
76205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
76305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@
76405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoLEAST32
76505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNoLEAST32 "o"
76605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
76705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@
76805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuLEAST32
76905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNuLEAST32 "u"
77005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
77105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@
77205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxLEAST32
77305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SCNxLEAST32 "x"
77405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
77505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
77605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@
77705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNdLEAST64
77805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdLEAST64 SCNd64
77905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
78005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@
78105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNiLEAST64
78205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiLEAST64 SCNi64
78305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
78405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
78505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
78605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@
78705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNoLEAST64
78805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoLEAST64 SCNo64
78905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
79005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@
79105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNuLEAST64
79205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuLEAST64 SCNu64
79305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
79405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@
79505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNxLEAST64
79605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxLEAST64 SCNx64
79705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
79805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
79905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
80005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@
80105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdFAST8
80205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
80305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 SCNd64
80405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7fff
80505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 "hd"
80605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7f
80705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 "hhd"
80805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
80905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST8 "d"
81005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
81105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
81205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@
81305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiFAST8
81405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST8_MAX > INT32_MAX
81505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 SCNi64
81605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7fff
81705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 "hi"
81805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST8_MAX == 0x7f
81905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 "hhi"
82005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
82105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST8 "i"
82205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
82305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
82405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@
82505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoFAST8
82605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
82705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 SCNo64
82805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xffff
82905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 "ho"
83005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xff
83105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 "hho"
83205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
83305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST8 "o"
83405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
83505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
83605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@
83705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuFAST8
83805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
83905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 SCNu64
84005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xffff
84105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 "hu"
84205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xff
84305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 "hhu"
84405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
84505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST8 "u"
84605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
84705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
84805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@
84905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxFAST8
85005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST8_MAX > UINT32_MAX
85105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 SCNx64
85205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xffff
85305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 "hx"
85405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST8_MAX == 0xff
85505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 "hhx"
85605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
85705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST8 "x"
85805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
85905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
86005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@
86105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdFAST16
86205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
86305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST16 SCNd64
86405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST16_MAX == 0x7fff
86505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST16 "hd"
86605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
86705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST16 "d"
86805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
86905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
87005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@
87105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiFAST16
87205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST16_MAX > INT32_MAX
87305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST16 SCNi64
87405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif INT_FAST16_MAX == 0x7fff
87505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST16 "hi"
87605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
87705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST16 "i"
87805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
87905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
88005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@
88105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoFAST16
88205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
88305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST16 SCNo64
88405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST16_MAX == 0xffff
88505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST16 "ho"
88605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
88705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST16 "o"
88805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
88905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
89005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@
89105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuFAST16
89205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
89305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST16 SCNu64
89405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST16_MAX == 0xffff
89505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST16 "hu"
89605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
89705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST16 "u"
89805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
89905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
90005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@
90105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxFAST16
90205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST16_MAX > UINT32_MAX
90305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST16 SCNx64
90405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif UINT_FAST16_MAX == 0xffff
90505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST16 "hx"
90605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
90705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST16 "x"
90805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
90905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
91005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@
91105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdFAST32
91205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
91305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST32 SCNd64
91405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
91505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST32 "d"
91605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
91705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
91805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@
91905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiFAST32
92005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if INT_FAST32_MAX > INT32_MAX
92105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST32 SCNi64
92205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
92305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST32 "i"
92405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
92505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
92605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@
92705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoFAST32
92805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
92905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST32 SCNo64
93005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
93105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST32 "o"
93205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
93305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
93405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@
93505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuFAST32
93605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
93705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST32 SCNu64
93805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
93905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST32 "u"
94005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
94105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
94205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@
94305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxFAST32
94405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if UINT_FAST32_MAX > UINT32_MAX
94505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST32 SCNx64
94605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
94705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST32 "x"
94805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
94905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
95005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX
95105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@
95205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNdFAST64
95305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdFAST64 SCNd64
95405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
95505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@
95605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNiFAST64
95705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiFAST64 SCNi64
95805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
95905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
96005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX
96105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@
96205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNoFAST64
96305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoFAST64 SCNo64
96405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
96505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@
96605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNuFAST64
96705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuFAST64 SCNu64
96805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
96905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@
97005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef SCNxFAST64
97105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxFAST64 SCNx64
97205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
97305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
97405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
97505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdMAX || @PRI_MACROS_BROKEN@
97605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdMAX
97705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @INT32_MAX_LT_INTMAX_MAX@
97805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdMAX SCNd64
97905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
98005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdMAX "ld"
98105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
98205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
98305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiMAX || @PRI_MACROS_BROKEN@
98405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiMAX
98505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @INT32_MAX_LT_INTMAX_MAX@
98605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiMAX SCNi64
98705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
98805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiMAX "li"
98905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
99005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
99105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoMAX || @PRI_MACROS_BROKEN@
99205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoMAX
99305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
99405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoMAX SCNo64
99505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
99605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoMAX "lo"
99705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
99805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
99905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuMAX || @PRI_MACROS_BROKEN@
100005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuMAX
100105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
100205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuMAX SCNu64
100305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
100405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuMAX "lu"
100505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
100605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
100705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxMAX || @PRI_MACROS_BROKEN@
100805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxMAX
100905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @UINT32_MAX_LT_UINTMAX_MAX@
101005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxMAX SCNx64
101105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
101205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxMAX "lx"
101305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
101405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
101505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
101605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNdPTR || @PRI_MACROS_BROKEN@
101705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNdPTR
101805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
101905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNdPTR @PRIPTR_PREFIX@ "d"
102005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
102105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
102205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNiPTR || @PRI_MACROS_BROKEN@
102305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNiPTR
102405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INTPTR_MAX
102505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNiPTR @PRIPTR_PREFIX@ "i"
102605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
102705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
102805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNoPTR || @PRI_MACROS_BROKEN@
102905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNoPTR
103005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
103105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNoPTR @PRIPTR_PREFIX@ "o"
103205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
103305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
103405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNuPTR || @PRI_MACROS_BROKEN@
103505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNuPTR
103605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
103705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNuPTR @PRIPTR_PREFIX@ "u"
103805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
103905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
104005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined SCNxPTR || @PRI_MACROS_BROKEN@
104105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef SCNxPTR
104205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINTPTR_MAX
104305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define SCNxPTR @PRIPTR_PREFIX@ "x"
104405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
104505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
104605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
104705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.8.2 Functions for greatest-width integer types */
104805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
104905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
105005436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern "C" {
105105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
105205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
105305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if @GNULIB_IMAXABS@
105405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !@HAVE_DECL_IMAXABS@
105505436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern intmax_t imaxabs (intmax_t);
105605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
105705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
105805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef imaxabs
105905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_IMAXABS
106005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
106105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module imaxabs for portability");
106205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
106305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
106405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
106505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if @GNULIB_IMAXDIV@
106605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !@HAVE_DECL_IMAXDIV@
106705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !GNULIB_defined_imaxdiv_t
106805436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
106905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define GNULIB_defined_imaxdiv_t 1
107005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
107105436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern imaxdiv_t imaxdiv (intmax_t, intmax_t);
107205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
107305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
107405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef imaxdiv
107505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_IMAXDIV
107605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
107705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module imaxdiv for portability");
107805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
107905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
108005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
108105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if @GNULIB_STRTOIMAX@
108205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if @REPLACE_STRTOIMAX@
108305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
108405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef strtoimax
108505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define strtoimax rpl_strtoimax
108605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
108705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (strtoimax, intmax_t,
108805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
108905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
109005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
109105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !@HAVE_DECL_STRTOIMAX@
109205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef strtoimax
109305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (strtoimax, intmax_t,
109405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
109505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
109605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
109705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
109805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (strtoimax);
109905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
110005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef strtoimax
110105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_STRTOIMAX
110205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
110305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module strtoimax for portability");
110405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
110505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
110605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if @GNULIB_STRTOUMAX@
110805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !@HAVE_DECL_STRTOUMAX@
110905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef strtoumax
111005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (strtoumax, uintmax_t,
111105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
111205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
111305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
111405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (strtoumax);
111505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
111605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef strtoumax
111705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_STRTOUMAX
111805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - "
111905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module strtoumax for portability");
112005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
112105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
112205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
112305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Don't bother defining or declaring wcstoimax and wcstoumax, since
112405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   wide-character functions like this are hardly ever useful.  */
112505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
112605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
112705436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
112805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
112905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
113005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */
1131