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