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) \ 335 extern __typeof__ (function) function __attribute__ ((__warning__ (message))) 336 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 337 /* Verify the existence of the function. */ 338 # define _GL_WARN_ON_USE(function, message) \ 339 extern __typeof__ (function) function 340 # else /* Unsupported. */ 341 # define _GL_WARN_ON_USE(function, message) \ 342 _GL_WARN_EXTERN_C int _gl_warn_on_use 343 # endif 344 #endif 345 346 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") 347 is like _GL_WARN_ON_USE (function, "string"), except that the function is 348 declared with the given prototype, consisting of return type, parameters, 349 and attributes. 350 This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does 351 not work in this case. */ 352 #ifndef _GL_WARN_ON_USE_CXX 353 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 354 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 355 extern rettype function parameters_and_attributes \ 356 __attribute__ ((__warning__ (msg))) 357 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 358 /* Verify the existence of the function. */ 359 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 360 extern rettype function parameters_and_attributes 361 # else /* Unsupported. */ 362 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 363 _GL_WARN_EXTERN_C int _gl_warn_on_use 364 # endif 365 #endif 366 367 /* _GL_WARN_EXTERN_C declaration; 368 performs the declaration with C linkage. */ 369 #ifndef _GL_WARN_EXTERN_C 370 # if defined __cplusplus 371 # define _GL_WARN_EXTERN_C extern "C" 372 # else 373 # define _GL_WARN_EXTERN_C extern 374 # endif 375 #endif 376 377 /* 7.8.1 Macros for format specifiers */ 378 379 #if defined _TNS_R_TARGET 380 /* Tandem NonStop R series and compatible platforms released before 381 July 2005 support %Ld but not %lld. */ 382 # define _LONG_LONG_FORMAT_PREFIX "L" 383 #else 384 # define _LONG_LONG_FORMAT_PREFIX "ll" 385 #endif 386 387 #if !defined PRId8 || 0 388 # undef PRId8 389 # ifdef INT8_MAX 390 # define PRId8 "d" 391 # endif 392 #endif 393 #if !defined PRIi8 || 0 394 # undef PRIi8 395 # ifdef INT8_MAX 396 # define PRIi8 "i" 397 # endif 398 #endif 399 #if !defined PRIo8 || 0 400 # undef PRIo8 401 # ifdef UINT8_MAX 402 # define PRIo8 "o" 403 # endif 404 #endif 405 #if !defined PRIu8 || 0 406 # undef PRIu8 407 # ifdef UINT8_MAX 408 # define PRIu8 "u" 409 # endif 410 #endif 411 #if !defined PRIx8 || 0 412 # undef PRIx8 413 # ifdef UINT8_MAX 414 # define PRIx8 "x" 415 # endif 416 #endif 417 #if !defined PRIX8 || 0 418 # undef PRIX8 419 # ifdef UINT8_MAX 420 # define PRIX8 "X" 421 # endif 422 #endif 423 #if !defined PRId16 || 0 424 # undef PRId16 425 # ifdef INT16_MAX 426 # define PRId16 "d" 427 # endif 428 #endif 429 #if !defined PRIi16 || 0 430 # undef PRIi16 431 # ifdef INT16_MAX 432 # define PRIi16 "i" 433 # endif 434 #endif 435 #if !defined PRIo16 || 0 436 # undef PRIo16 437 # ifdef UINT16_MAX 438 # define PRIo16 "o" 439 # endif 440 #endif 441 #if !defined PRIu16 || 0 442 # undef PRIu16 443 # ifdef UINT16_MAX 444 # define PRIu16 "u" 445 # endif 446 #endif 447 #if !defined PRIx16 || 0 448 # undef PRIx16 449 # ifdef UINT16_MAX 450 # define PRIx16 "x" 451 # endif 452 #endif 453 #if !defined PRIX16 || 0 454 # undef PRIX16 455 # ifdef UINT16_MAX 456 # define PRIX16 "X" 457 # endif 458 #endif 459 #if !defined PRId32 || 0 460 # undef PRId32 461 # ifdef INT32_MAX 462 # define PRId32 "d" 463 # endif 464 #endif 465 #if !defined PRIi32 || 0 466 # undef PRIi32 467 # ifdef INT32_MAX 468 # define PRIi32 "i" 469 # endif 470 #endif 471 #if !defined PRIo32 || 0 472 # undef PRIo32 473 # ifdef UINT32_MAX 474 # define PRIo32 "o" 475 # endif 476 #endif 477 #if !defined PRIu32 || 0 478 # undef PRIu32 479 # ifdef UINT32_MAX 480 # define PRIu32 "u" 481 # endif 482 #endif 483 #if !defined PRIx32 || 0 484 # undef PRIx32 485 # ifdef UINT32_MAX 486 # define PRIx32 "x" 487 # endif 488 #endif 489 #if !defined PRIX32 || 0 490 # undef PRIX32 491 # ifdef UINT32_MAX 492 # define PRIX32 "X" 493 # endif 494 #endif 495 #ifdef INT64_MAX 496 # if (0 ? defined _LP64 : 1) 497 # define _PRI64_PREFIX "l" 498 # elif defined _MSC_VER || defined __MINGW32__ 499 # define _PRI64_PREFIX "I64" 500 # elif 1 && LONG_MAX >> 30 == 1 501 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX 502 # endif 503 # if !defined PRId64 || 0 504 # undef PRId64 505 # define PRId64 _PRI64_PREFIX "d" 506 # endif 507 # if !defined PRIi64 || 0 508 # undef PRIi64 509 # define PRIi64 _PRI64_PREFIX "i" 510 # endif 511 #endif 512 #ifdef UINT64_MAX 513 # if (0 ? defined _LP64 : 1) 514 # define _PRIu64_PREFIX "l" 515 # elif defined _MSC_VER || defined __MINGW32__ 516 # define _PRIu64_PREFIX "I64" 517 # elif 1 && ULONG_MAX >> 31 == 1 518 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX 519 # endif 520 # if !defined PRIo64 || 0 521 # undef PRIo64 522 # define PRIo64 _PRIu64_PREFIX "o" 523 # endif 524 # if !defined PRIu64 || 0 525 # undef PRIu64 526 # define PRIu64 _PRIu64_PREFIX "u" 527 # endif 528 # if !defined PRIx64 || 0 529 # undef PRIx64 530 # define PRIx64 _PRIu64_PREFIX "x" 531 # endif 532 # if !defined PRIX64 || 0 533 # undef PRIX64 534 # define PRIX64 _PRIu64_PREFIX "X" 535 # endif 536 #endif 537 538 #if !defined PRIdLEAST8 || 0 539 # undef PRIdLEAST8 540 # define PRIdLEAST8 "d" 541 #endif 542 #if !defined PRIiLEAST8 || 0 543 # undef PRIiLEAST8 544 # define PRIiLEAST8 "i" 545 #endif 546 #if !defined PRIoLEAST8 || 0 547 # undef PRIoLEAST8 548 # define PRIoLEAST8 "o" 549 #endif 550 #if !defined PRIuLEAST8 || 0 551 # undef PRIuLEAST8 552 # define PRIuLEAST8 "u" 553 #endif 554 #if !defined PRIxLEAST8 || 0 555 # undef PRIxLEAST8 556 # define PRIxLEAST8 "x" 557 #endif 558 #if !defined PRIXLEAST8 || 0 559 # undef PRIXLEAST8 560 # define PRIXLEAST8 "X" 561 #endif 562 #if !defined PRIdLEAST16 || 0 563 # undef PRIdLEAST16 564 # define PRIdLEAST16 "d" 565 #endif 566 #if !defined PRIiLEAST16 || 0 567 # undef PRIiLEAST16 568 # define PRIiLEAST16 "i" 569 #endif 570 #if !defined PRIoLEAST16 || 0 571 # undef PRIoLEAST16 572 # define PRIoLEAST16 "o" 573 #endif 574 #if !defined PRIuLEAST16 || 0 575 # undef PRIuLEAST16 576 # define PRIuLEAST16 "u" 577 #endif 578 #if !defined PRIxLEAST16 || 0 579 # undef PRIxLEAST16 580 # define PRIxLEAST16 "x" 581 #endif 582 #if !defined PRIXLEAST16 || 0 583 # undef PRIXLEAST16 584 # define PRIXLEAST16 "X" 585 #endif 586 #if !defined PRIdLEAST32 || 0 587 # undef PRIdLEAST32 588 # define PRIdLEAST32 "d" 589 #endif 590 #if !defined PRIiLEAST32 || 0 591 # undef PRIiLEAST32 592 # define PRIiLEAST32 "i" 593 #endif 594 #if !defined PRIoLEAST32 || 0 595 # undef PRIoLEAST32 596 # define PRIoLEAST32 "o" 597 #endif 598 #if !defined PRIuLEAST32 || 0 599 # undef PRIuLEAST32 600 # define PRIuLEAST32 "u" 601 #endif 602 #if !defined PRIxLEAST32 || 0 603 # undef PRIxLEAST32 604 # define PRIxLEAST32 "x" 605 #endif 606 #if !defined PRIXLEAST32 || 0 607 # undef PRIXLEAST32 608 # define PRIXLEAST32 "X" 609 #endif 610 #ifdef INT64_MAX 611 # if !defined PRIdLEAST64 || 0 612 # undef PRIdLEAST64 613 # define PRIdLEAST64 PRId64 614 # endif 615 # if !defined PRIiLEAST64 || 0 616 # undef PRIiLEAST64 617 # define PRIiLEAST64 PRIi64 618 # endif 619 #endif 620 #ifdef UINT64_MAX 621 # if !defined PRIoLEAST64 || 0 622 # undef PRIoLEAST64 623 # define PRIoLEAST64 PRIo64 624 # endif 625 # if !defined PRIuLEAST64 || 0 626 # undef PRIuLEAST64 627 # define PRIuLEAST64 PRIu64 628 # endif 629 # if !defined PRIxLEAST64 || 0 630 # undef PRIxLEAST64 631 # define PRIxLEAST64 PRIx64 632 # endif 633 # if !defined PRIXLEAST64 || 0 634 # undef PRIXLEAST64 635 # define PRIXLEAST64 PRIX64 636 # endif 637 #endif 638 639 #if !defined PRIdFAST8 || 0 640 # undef PRIdFAST8 641 # if INT_FAST8_MAX > INT32_MAX 642 # define PRIdFAST8 PRId64 643 # else 644 # define PRIdFAST8 "d" 645 # endif 646 #endif 647 #if !defined PRIiFAST8 || 0 648 # undef PRIiFAST8 649 # if INT_FAST8_MAX > INT32_MAX 650 # define PRIiFAST8 PRIi64 651 # else 652 # define PRIiFAST8 "i" 653 # endif 654 #endif 655 #if !defined PRIoFAST8 || 0 656 # undef PRIoFAST8 657 # if UINT_FAST8_MAX > UINT32_MAX 658 # define PRIoFAST8 PRIo64 659 # else 660 # define PRIoFAST8 "o" 661 # endif 662 #endif 663 #if !defined PRIuFAST8 || 0 664 # undef PRIuFAST8 665 # if UINT_FAST8_MAX > UINT32_MAX 666 # define PRIuFAST8 PRIu64 667 # else 668 # define PRIuFAST8 "u" 669 # endif 670 #endif 671 #if !defined PRIxFAST8 || 0 672 # undef PRIxFAST8 673 # if UINT_FAST8_MAX > UINT32_MAX 674 # define PRIxFAST8 PRIx64 675 # else 676 # define PRIxFAST8 "x" 677 # endif 678 #endif 679 #if !defined PRIXFAST8 || 0 680 # undef PRIXFAST8 681 # if UINT_FAST8_MAX > UINT32_MAX 682 # define PRIXFAST8 PRIX64 683 # else 684 # define PRIXFAST8 "X" 685 # endif 686 #endif 687 #if !defined PRIdFAST16 || 0 688 # undef PRIdFAST16 689 # if INT_FAST16_MAX > INT32_MAX 690 # define PRIdFAST16 PRId64 691 # else 692 # define PRIdFAST16 "d" 693 # endif 694 #endif 695 #if !defined PRIiFAST16 || 0 696 # undef PRIiFAST16 697 # if INT_FAST16_MAX > INT32_MAX 698 # define PRIiFAST16 PRIi64 699 # else 700 # define PRIiFAST16 "i" 701 # endif 702 #endif 703 #if !defined PRIoFAST16 || 0 704 # undef PRIoFAST16 705 # if UINT_FAST16_MAX > UINT32_MAX 706 # define PRIoFAST16 PRIo64 707 # else 708 # define PRIoFAST16 "o" 709 # endif 710 #endif 711 #if !defined PRIuFAST16 || 0 712 # undef PRIuFAST16 713 # if UINT_FAST16_MAX > UINT32_MAX 714 # define PRIuFAST16 PRIu64 715 # else 716 # define PRIuFAST16 "u" 717 # endif 718 #endif 719 #if !defined PRIxFAST16 || 0 720 # undef PRIxFAST16 721 # if UINT_FAST16_MAX > UINT32_MAX 722 # define PRIxFAST16 PRIx64 723 # else 724 # define PRIxFAST16 "x" 725 # endif 726 #endif 727 #if !defined PRIXFAST16 || 0 728 # undef PRIXFAST16 729 # if UINT_FAST16_MAX > UINT32_MAX 730 # define PRIXFAST16 PRIX64 731 # else 732 # define PRIXFAST16 "X" 733 # endif 734 #endif 735 #if !defined PRIdFAST32 || 0 736 # undef PRIdFAST32 737 # if INT_FAST32_MAX > INT32_MAX 738 # define PRIdFAST32 PRId64 739 # else 740 # define PRIdFAST32 "d" 741 # endif 742 #endif 743 #if !defined PRIiFAST32 || 0 744 # undef PRIiFAST32 745 # if INT_FAST32_MAX > INT32_MAX 746 # define PRIiFAST32 PRIi64 747 # else 748 # define PRIiFAST32 "i" 749 # endif 750 #endif 751 #if !defined PRIoFAST32 || 0 752 # undef PRIoFAST32 753 # if UINT_FAST32_MAX > UINT32_MAX 754 # define PRIoFAST32 PRIo64 755 # else 756 # define PRIoFAST32 "o" 757 # endif 758 #endif 759 #if !defined PRIuFAST32 || 0 760 # undef PRIuFAST32 761 # if UINT_FAST32_MAX > UINT32_MAX 762 # define PRIuFAST32 PRIu64 763 # else 764 # define PRIuFAST32 "u" 765 # endif 766 #endif 767 #if !defined PRIxFAST32 || 0 768 # undef PRIxFAST32 769 # if UINT_FAST32_MAX > UINT32_MAX 770 # define PRIxFAST32 PRIx64 771 # else 772 # define PRIxFAST32 "x" 773 # endif 774 #endif 775 #if !defined PRIXFAST32 || 0 776 # undef PRIXFAST32 777 # if UINT_FAST32_MAX > UINT32_MAX 778 # define PRIXFAST32 PRIX64 779 # else 780 # define PRIXFAST32 "X" 781 # endif 782 #endif 783 #ifdef INT64_MAX 784 # if !defined PRIdFAST64 || 0 785 # undef PRIdFAST64 786 # define PRIdFAST64 PRId64 787 # endif 788 # if !defined PRIiFAST64 || 0 789 # undef PRIiFAST64 790 # define PRIiFAST64 PRIi64 791 # endif 792 #endif 793 #ifdef UINT64_MAX 794 # if !defined PRIoFAST64 || 0 795 # undef PRIoFAST64 796 # define PRIoFAST64 PRIo64 797 # endif 798 # if !defined PRIuFAST64 || 0 799 # undef PRIuFAST64 800 # define PRIuFAST64 PRIu64 801 # endif 802 # if !defined PRIxFAST64 || 0 803 # undef PRIxFAST64 804 # define PRIxFAST64 PRIx64 805 # endif 806 # if !defined PRIXFAST64 || 0 807 # undef PRIXFAST64 808 # define PRIXFAST64 PRIX64 809 # endif 810 #endif 811 812 #if !defined PRIdMAX || 0 813 # undef PRIdMAX 814 # if 1 815 # define PRIdMAX PRId64 816 # else 817 # define PRIdMAX "ld" 818 # endif 819 #endif 820 #if !defined PRIiMAX || 0 821 # undef PRIiMAX 822 # if 1 823 # define PRIiMAX PRIi64 824 # else 825 # define PRIiMAX "li" 826 # endif 827 #endif 828 #if !defined PRIoMAX || 0 829 # undef PRIoMAX 830 # if 1 831 # define PRIoMAX PRIo64 832 # else 833 # define PRIoMAX "lo" 834 # endif 835 #endif 836 #if !defined PRIuMAX || 0 837 # undef PRIuMAX 838 # if 1 839 # define PRIuMAX PRIu64 840 # else 841 # define PRIuMAX "lu" 842 # endif 843 #endif 844 #if !defined PRIxMAX || 0 845 # undef PRIxMAX 846 # if 1 847 # define PRIxMAX PRIx64 848 # else 849 # define PRIxMAX "lx" 850 # endif 851 #endif 852 #if !defined PRIXMAX || 0 853 # undef PRIXMAX 854 # if 1 855 # define PRIXMAX PRIX64 856 # else 857 # define PRIXMAX "lX" 858 # endif 859 #endif 860 861 #if !defined PRIdPTR || 0 862 # undef PRIdPTR 863 # ifdef INTPTR_MAX 864 # define PRIdPTR "l" "d" 865 # endif 866 #endif 867 #if !defined PRIiPTR || 0 868 # undef PRIiPTR 869 # ifdef INTPTR_MAX 870 # define PRIiPTR "l" "i" 871 # endif 872 #endif 873 #if !defined PRIoPTR || 0 874 # undef PRIoPTR 875 # ifdef UINTPTR_MAX 876 # define PRIoPTR "l" "o" 877 # endif 878 #endif 879 #if !defined PRIuPTR || 0 880 # undef PRIuPTR 881 # ifdef UINTPTR_MAX 882 # define PRIuPTR "l" "u" 883 # endif 884 #endif 885 #if !defined PRIxPTR || 0 886 # undef PRIxPTR 887 # ifdef UINTPTR_MAX 888 # define PRIxPTR "l" "x" 889 # endif 890 #endif 891 #if !defined PRIXPTR || 0 892 # undef PRIXPTR 893 # ifdef UINTPTR_MAX 894 # define PRIXPTR "l" "X" 895 # endif 896 #endif 897 898 #if !defined SCNd8 || 0 899 # undef SCNd8 900 # ifdef INT8_MAX 901 # define SCNd8 "hhd" 902 # endif 903 #endif 904 #if !defined SCNi8 || 0 905 # undef SCNi8 906 # ifdef INT8_MAX 907 # define SCNi8 "hhi" 908 # endif 909 #endif 910 #if !defined SCNo8 || 0 911 # undef SCNo8 912 # ifdef UINT8_MAX 913 # define SCNo8 "hho" 914 # endif 915 #endif 916 #if !defined SCNu8 || 0 917 # undef SCNu8 918 # ifdef UINT8_MAX 919 # define SCNu8 "hhu" 920 # endif 921 #endif 922 #if !defined SCNx8 || 0 923 # undef SCNx8 924 # ifdef UINT8_MAX 925 # define SCNx8 "hhx" 926 # endif 927 #endif 928 #if !defined SCNd16 || 0 929 # undef SCNd16 930 # ifdef INT16_MAX 931 # define SCNd16 "hd" 932 # endif 933 #endif 934 #if !defined SCNi16 || 0 935 # undef SCNi16 936 # ifdef INT16_MAX 937 # define SCNi16 "hi" 938 # endif 939 #endif 940 #if !defined SCNo16 || 0 941 # undef SCNo16 942 # ifdef UINT16_MAX 943 # define SCNo16 "ho" 944 # endif 945 #endif 946 #if !defined SCNu16 || 0 947 # undef SCNu16 948 # ifdef UINT16_MAX 949 # define SCNu16 "hu" 950 # endif 951 #endif 952 #if !defined SCNx16 || 0 953 # undef SCNx16 954 # ifdef UINT16_MAX 955 # define SCNx16 "hx" 956 # endif 957 #endif 958 #if !defined SCNd32 || 0 959 # undef SCNd32 960 # ifdef INT32_MAX 961 # define SCNd32 "d" 962 # endif 963 #endif 964 #if !defined SCNi32 || 0 965 # undef SCNi32 966 # ifdef INT32_MAX 967 # define SCNi32 "i" 968 # endif 969 #endif 970 #if !defined SCNo32 || 0 971 # undef SCNo32 972 # ifdef UINT32_MAX 973 # define SCNo32 "o" 974 # endif 975 #endif 976 #if !defined SCNu32 || 0 977 # undef SCNu32 978 # ifdef UINT32_MAX 979 # define SCNu32 "u" 980 # endif 981 #endif 982 #if !defined SCNx32 || 0 983 # undef SCNx32 984 # ifdef UINT32_MAX 985 # define SCNx32 "x" 986 # endif 987 #endif 988 #ifdef INT64_MAX 989 # if (0 ? defined _LP64 : 1) 990 # define _SCN64_PREFIX "l" 991 # elif defined _MSC_VER || defined __MINGW32__ 992 # define _SCN64_PREFIX "I64" 993 # elif 1 && LONG_MAX >> 30 == 1 994 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX 995 # endif 996 # if !defined SCNd64 || 0 997 # undef SCNd64 998 # define SCNd64 _SCN64_PREFIX "d" 999 # endif 1000 # if !defined SCNi64 || 0 1001 # undef SCNi64 1002 # define SCNi64 _SCN64_PREFIX "i" 1003 # endif 1004 #endif 1005 #ifdef UINT64_MAX 1006 # if (0 ? defined _LP64 : 1) 1007 # define _SCNu64_PREFIX "l" 1008 # elif defined _MSC_VER || defined __MINGW32__ 1009 # define _SCNu64_PREFIX "I64" 1010 # elif 1 && ULONG_MAX >> 31 == 1 1011 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX 1012 # endif 1013 # if !defined SCNo64 || 0 1014 # undef SCNo64 1015 # define SCNo64 _SCNu64_PREFIX "o" 1016 # endif 1017 # if !defined SCNu64 || 0 1018 # undef SCNu64 1019 # define SCNu64 _SCNu64_PREFIX "u" 1020 # endif 1021 # if !defined SCNx64 || 0 1022 # undef SCNx64 1023 # define SCNx64 _SCNu64_PREFIX "x" 1024 # endif 1025 #endif 1026 1027 #if !defined SCNdLEAST8 || 0 1028 # undef SCNdLEAST8 1029 # define SCNdLEAST8 "hhd" 1030 #endif 1031 #if !defined SCNiLEAST8 || 0 1032 # undef SCNiLEAST8 1033 # define SCNiLEAST8 "hhi" 1034 #endif 1035 #if !defined SCNoLEAST8 || 0 1036 # undef SCNoLEAST8 1037 # define SCNoLEAST8 "hho" 1038 #endif 1039 #if !defined SCNuLEAST8 || 0 1040 # undef SCNuLEAST8 1041 # define SCNuLEAST8 "hhu" 1042 #endif 1043 #if !defined SCNxLEAST8 || 0 1044 # undef SCNxLEAST8 1045 # define SCNxLEAST8 "hhx" 1046 #endif 1047 #if !defined SCNdLEAST16 || 0 1048 # undef SCNdLEAST16 1049 # define SCNdLEAST16 "hd" 1050 #endif 1051 #if !defined SCNiLEAST16 || 0 1052 # undef SCNiLEAST16 1053 # define SCNiLEAST16 "hi" 1054 #endif 1055 #if !defined SCNoLEAST16 || 0 1056 # undef SCNoLEAST16 1057 # define SCNoLEAST16 "ho" 1058 #endif 1059 #if !defined SCNuLEAST16 || 0 1060 # undef SCNuLEAST16 1061 # define SCNuLEAST16 "hu" 1062 #endif 1063 #if !defined SCNxLEAST16 || 0 1064 # undef SCNxLEAST16 1065 # define SCNxLEAST16 "hx" 1066 #endif 1067 #if !defined SCNdLEAST32 || 0 1068 # undef SCNdLEAST32 1069 # define SCNdLEAST32 "d" 1070 #endif 1071 #if !defined SCNiLEAST32 || 0 1072 # undef SCNiLEAST32 1073 # define SCNiLEAST32 "i" 1074 #endif 1075 #if !defined SCNoLEAST32 || 0 1076 # undef SCNoLEAST32 1077 # define SCNoLEAST32 "o" 1078 #endif 1079 #if !defined SCNuLEAST32 || 0 1080 # undef SCNuLEAST32 1081 # define SCNuLEAST32 "u" 1082 #endif 1083 #if !defined SCNxLEAST32 || 0 1084 # undef SCNxLEAST32 1085 # define SCNxLEAST32 "x" 1086 #endif 1087 #ifdef INT64_MAX 1088 # if !defined SCNdLEAST64 || 0 1089 # undef SCNdLEAST64 1090 # define SCNdLEAST64 SCNd64 1091 # endif 1092 # if !defined SCNiLEAST64 || 0 1093 # undef SCNiLEAST64 1094 # define SCNiLEAST64 SCNi64 1095 # endif 1096 #endif 1097 #ifdef UINT64_MAX 1098 # if !defined SCNoLEAST64 || 0 1099 # undef SCNoLEAST64 1100 # define SCNoLEAST64 SCNo64 1101 # endif 1102 # if !defined SCNuLEAST64 || 0 1103 # undef SCNuLEAST64 1104 # define SCNuLEAST64 SCNu64 1105 # endif 1106 # if !defined SCNxLEAST64 || 0 1107 # undef SCNxLEAST64 1108 # define SCNxLEAST64 SCNx64 1109 # endif 1110 #endif 1111 1112 #if !defined SCNdFAST8 || 0 1113 # undef SCNdFAST8 1114 # if INT_FAST8_MAX > INT32_MAX 1115 # define SCNdFAST8 SCNd64 1116 # elif INT_FAST8_MAX == 0x7fff 1117 # define SCNdFAST8 "hd" 1118 # elif INT_FAST8_MAX == 0x7f 1119 # define SCNdFAST8 "hhd" 1120 # else 1121 # define SCNdFAST8 "d" 1122 # endif 1123 #endif 1124 #if !defined SCNiFAST8 || 0 1125 # undef SCNiFAST8 1126 # if INT_FAST8_MAX > INT32_MAX 1127 # define SCNiFAST8 SCNi64 1128 # elif INT_FAST8_MAX == 0x7fff 1129 # define SCNiFAST8 "hi" 1130 # elif INT_FAST8_MAX == 0x7f 1131 # define SCNiFAST8 "hhi" 1132 # else 1133 # define SCNiFAST8 "i" 1134 # endif 1135 #endif 1136 #if !defined SCNoFAST8 || 0 1137 # undef SCNoFAST8 1138 # if UINT_FAST8_MAX > UINT32_MAX 1139 # define SCNoFAST8 SCNo64 1140 # elif UINT_FAST8_MAX == 0xffff 1141 # define SCNoFAST8 "ho" 1142 # elif UINT_FAST8_MAX == 0xff 1143 # define SCNoFAST8 "hho" 1144 # else 1145 # define SCNoFAST8 "o" 1146 # endif 1147 #endif 1148 #if !defined SCNuFAST8 || 0 1149 # undef SCNuFAST8 1150 # if UINT_FAST8_MAX > UINT32_MAX 1151 # define SCNuFAST8 SCNu64 1152 # elif UINT_FAST8_MAX == 0xffff 1153 # define SCNuFAST8 "hu" 1154 # elif UINT_FAST8_MAX == 0xff 1155 # define SCNuFAST8 "hhu" 1156 # else 1157 # define SCNuFAST8 "u" 1158 # endif 1159 #endif 1160 #if !defined SCNxFAST8 || 0 1161 # undef SCNxFAST8 1162 # if UINT_FAST8_MAX > UINT32_MAX 1163 # define SCNxFAST8 SCNx64 1164 # elif UINT_FAST8_MAX == 0xffff 1165 # define SCNxFAST8 "hx" 1166 # elif UINT_FAST8_MAX == 0xff 1167 # define SCNxFAST8 "hhx" 1168 # else 1169 # define SCNxFAST8 "x" 1170 # endif 1171 #endif 1172 #if !defined SCNdFAST16 || 0 1173 # undef SCNdFAST16 1174 # if INT_FAST16_MAX > INT32_MAX 1175 # define SCNdFAST16 SCNd64 1176 # elif INT_FAST16_MAX == 0x7fff 1177 # define SCNdFAST16 "hd" 1178 # else 1179 # define SCNdFAST16 "d" 1180 # endif 1181 #endif 1182 #if !defined SCNiFAST16 || 0 1183 # undef SCNiFAST16 1184 # if INT_FAST16_MAX > INT32_MAX 1185 # define SCNiFAST16 SCNi64 1186 # elif INT_FAST16_MAX == 0x7fff 1187 # define SCNiFAST16 "hi" 1188 # else 1189 # define SCNiFAST16 "i" 1190 # endif 1191 #endif 1192 #if !defined SCNoFAST16 || 0 1193 # undef SCNoFAST16 1194 # if UINT_FAST16_MAX > UINT32_MAX 1195 # define SCNoFAST16 SCNo64 1196 # elif UINT_FAST16_MAX == 0xffff 1197 # define SCNoFAST16 "ho" 1198 # else 1199 # define SCNoFAST16 "o" 1200 # endif 1201 #endif 1202 #if !defined SCNuFAST16 || 0 1203 # undef SCNuFAST16 1204 # if UINT_FAST16_MAX > UINT32_MAX 1205 # define SCNuFAST16 SCNu64 1206 # elif UINT_FAST16_MAX == 0xffff 1207 # define SCNuFAST16 "hu" 1208 # else 1209 # define SCNuFAST16 "u" 1210 # endif 1211 #endif 1212 #if !defined SCNxFAST16 || 0 1213 # undef SCNxFAST16 1214 # if UINT_FAST16_MAX > UINT32_MAX 1215 # define SCNxFAST16 SCNx64 1216 # elif UINT_FAST16_MAX == 0xffff 1217 # define SCNxFAST16 "hx" 1218 # else 1219 # define SCNxFAST16 "x" 1220 # endif 1221 #endif 1222 #if !defined SCNdFAST32 || 0 1223 # undef SCNdFAST32 1224 # if INT_FAST32_MAX > INT32_MAX 1225 # define SCNdFAST32 SCNd64 1226 # else 1227 # define SCNdFAST32 "d" 1228 # endif 1229 #endif 1230 #if !defined SCNiFAST32 || 0 1231 # undef SCNiFAST32 1232 # if INT_FAST32_MAX > INT32_MAX 1233 # define SCNiFAST32 SCNi64 1234 # else 1235 # define SCNiFAST32 "i" 1236 # endif 1237 #endif 1238 #if !defined SCNoFAST32 || 0 1239 # undef SCNoFAST32 1240 # if UINT_FAST32_MAX > UINT32_MAX 1241 # define SCNoFAST32 SCNo64 1242 # else 1243 # define SCNoFAST32 "o" 1244 # endif 1245 #endif 1246 #if !defined SCNuFAST32 || 0 1247 # undef SCNuFAST32 1248 # if UINT_FAST32_MAX > UINT32_MAX 1249 # define SCNuFAST32 SCNu64 1250 # else 1251 # define SCNuFAST32 "u" 1252 # endif 1253 #endif 1254 #if !defined SCNxFAST32 || 0 1255 # undef SCNxFAST32 1256 # if UINT_FAST32_MAX > UINT32_MAX 1257 # define SCNxFAST32 SCNx64 1258 # else 1259 # define SCNxFAST32 "x" 1260 # endif 1261 #endif 1262 #ifdef INT64_MAX 1263 # if !defined SCNdFAST64 || 0 1264 # undef SCNdFAST64 1265 # define SCNdFAST64 SCNd64 1266 # endif 1267 # if !defined SCNiFAST64 || 0 1268 # undef SCNiFAST64 1269 # define SCNiFAST64 SCNi64 1270 # endif 1271 #endif 1272 #ifdef UINT64_MAX 1273 # if !defined SCNoFAST64 || 0 1274 # undef SCNoFAST64 1275 # define SCNoFAST64 SCNo64 1276 # endif 1277 # if !defined SCNuFAST64 || 0 1278 # undef SCNuFAST64 1279 # define SCNuFAST64 SCNu64 1280 # endif 1281 # if !defined SCNxFAST64 || 0 1282 # undef SCNxFAST64 1283 # define SCNxFAST64 SCNx64 1284 # endif 1285 #endif 1286 1287 #if !defined SCNdMAX || 0 1288 # undef SCNdMAX 1289 # if 1 1290 # define SCNdMAX SCNd64 1291 # else 1292 # define SCNdMAX "ld" 1293 # endif 1294 #endif 1295 #if !defined SCNiMAX || 0 1296 # undef SCNiMAX 1297 # if 1 1298 # define SCNiMAX SCNi64 1299 # else 1300 # define SCNiMAX "li" 1301 # endif 1302 #endif 1303 #if !defined SCNoMAX || 0 1304 # undef SCNoMAX 1305 # if 1 1306 # define SCNoMAX SCNo64 1307 # else 1308 # define SCNoMAX "lo" 1309 # endif 1310 #endif 1311 #if !defined SCNuMAX || 0 1312 # undef SCNuMAX 1313 # if 1 1314 # define SCNuMAX SCNu64 1315 # else 1316 # define SCNuMAX "lu" 1317 # endif 1318 #endif 1319 #if !defined SCNxMAX || 0 1320 # undef SCNxMAX 1321 # if 1 1322 # define SCNxMAX SCNx64 1323 # else 1324 # define SCNxMAX "lx" 1325 # endif 1326 #endif 1327 1328 #if !defined SCNdPTR || 0 1329 # undef SCNdPTR 1330 # ifdef INTPTR_MAX 1331 # define SCNdPTR "l" "d" 1332 # endif 1333 #endif 1334 #if !defined SCNiPTR || 0 1335 # undef SCNiPTR 1336 # ifdef INTPTR_MAX 1337 # define SCNiPTR "l" "i" 1338 # endif 1339 #endif 1340 #if !defined SCNoPTR || 0 1341 # undef SCNoPTR 1342 # ifdef UINTPTR_MAX 1343 # define SCNoPTR "l" "o" 1344 # endif 1345 #endif 1346 #if !defined SCNuPTR || 0 1347 # undef SCNuPTR 1348 # ifdef UINTPTR_MAX 1349 # define SCNuPTR "l" "u" 1350 # endif 1351 #endif 1352 #if !defined SCNxPTR || 0 1353 # undef SCNxPTR 1354 # ifdef UINTPTR_MAX 1355 # define SCNxPTR "l" "x" 1356 # endif 1357 #endif 1358 1359 /* 7.8.2 Functions for greatest-width integer types */ 1360 1361 #ifdef __cplusplus 1362 extern "C" { 1363 #endif 1364 1365 #if 0 1366 # if !1 1367 extern intmax_t imaxabs (intmax_t); 1368 # endif 1369 #elif defined GNULIB_POSIXCHECK 1370 # undef imaxabs 1371 # if HAVE_RAW_DECL_IMAXABS 1372 _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " 1373 "use gnulib module imaxabs for portability"); 1374 # endif 1375 #endif 1376 1377 #if 0 1378 # if !1 1379 # if !GNULIB_defined_imaxdiv_t 1380 typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; 1381 # define GNULIB_defined_imaxdiv_t 1 1382 # endif 1383 extern imaxdiv_t imaxdiv (intmax_t, intmax_t); 1384 # endif 1385 #elif defined GNULIB_POSIXCHECK 1386 # undef imaxdiv 1387 # if HAVE_RAW_DECL_IMAXDIV 1388 _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " 1389 "use gnulib module imaxdiv for portability"); 1390 # endif 1391 #endif 1392 1393 #if 0 1394 # if 0 1395 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1396 # undef strtoimax 1397 # define strtoimax rpl_strtoimax 1398 # endif 1399 _GL_FUNCDECL_RPL (strtoimax, intmax_t, 1400 (const char *, char **, int) _GL_ARG_NONNULL ((1))); 1401 _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int)); 1402 # else 1403 # if !1 1404 # undef strtoimax 1405 _GL_FUNCDECL_SYS (strtoimax, intmax_t, 1406 (const char *, char **, int) _GL_ARG_NONNULL ((1))); 1407 # endif 1408 _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int)); 1409 # endif 1410 _GL_CXXALIASWARN (strtoimax); 1411 #elif defined GNULIB_POSIXCHECK 1412 # undef strtoimax 1413 # if HAVE_RAW_DECL_STRTOIMAX 1414 _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " 1415 "use gnulib module strtoimax for portability"); 1416 # endif 1417 #endif 1418 1419 #if 0 1420 # if !1 1421 # undef strtoumax 1422 _GL_FUNCDECL_SYS (strtoumax, uintmax_t, 1423 (const char *, char **, int) _GL_ARG_NONNULL ((1))); 1424 # endif 1425 _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); 1426 _GL_CXXALIASWARN (strtoumax); 1427 #elif defined GNULIB_POSIXCHECK 1428 # undef strtoumax 1429 # if HAVE_RAW_DECL_STRTOUMAX 1430 _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " 1431 "use gnulib module strtoumax for portability"); 1432 # endif 1433 #endif 1434 1435 /* Don't bother defining or declaring wcstoimax and wcstoumax, since 1436 wide-character functions like this are hardly ever useful. */ 1437 1438 #ifdef __cplusplus 1439 } 1440 #endif 1441 1442 #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ 1443