1 /* Copyright (C) 2006-2021 Free Software Foundation, Inc. 2 Written by Paul Eggert, Bruno Haible, Derek Price. 3 This file is part of gnulib. 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 17 18 /* 19 * ISO C 99 <inttypes.h> for platforms that lack it. 20 * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html> 21 */ 22 23 #if __GNUC__ >= 3 24 @PRAGMA_SYSTEM_HEADER@ 25 #endif 26 @PRAGMA_COLUMNS@ 27 28 /* Include the original <inttypes.h> if it exists, and if this file 29 has not been included yet or if this file includes gnulib stdint.h 30 which in turn includes this file. 31 The include_next requires a split double-inclusion guard. */ 32 #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 33 # if @HAVE_INTTYPES_H@ 34 35 /* Some pre-C++11 <stdint.h> implementations need this. */ 36 # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS 37 # define __STDC_FORMAT_MACROS 1 38 # endif 39 40 # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ 41 42 # define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H 43 # endif 44 #endif 45 46 #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 47 #define INTTYPES_H 48 49 /* Include <stdint.h> or the gnulib replacement. 50 But avoid namespace pollution on glibc systems. */ 51 #ifndef __GLIBC__ 52 # include <stdint.h> 53 #endif 54 /* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ 55 #include <limits.h> 56 /* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */ 57 #if defined _WIN32 && ! defined __CYGWIN__ 58 # include <stdio.h> 59 #endif 60 61 #if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) 62 # error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to <bug-gnulib@gnu.org>." 63 #endif 64 65 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ 66 67 /* The definition of _GL_ARG_NONNULL is copied here. */ 68 69 /* The definition of _GL_WARN_ON_USE is copied here. */ 70 71 /* 7.8.1 Macros for format specifiers */ 72 73 #if defined _TNS_R_TARGET 74 /* Tandem NonStop R series and compatible platforms released before 75 July 2005 support %Ld but not %lld. */ 76 # define _LONG_LONG_FORMAT_PREFIX "L" 77 #else 78 # define _LONG_LONG_FORMAT_PREFIX "ll" 79 #endif 80 81 #if !defined PRId8 82 # ifdef INT8_MAX 83 # define PRId8 "d" 84 # endif 85 #endif 86 #if !defined PRIi8 87 # ifdef INT8_MAX 88 # define PRIi8 "i" 89 # endif 90 #endif 91 #if !defined PRIo8 92 # ifdef UINT8_MAX 93 # define PRIo8 "o" 94 # endif 95 #endif 96 #if !defined PRIu8 97 # ifdef UINT8_MAX 98 # define PRIu8 "u" 99 # endif 100 #endif 101 #if !defined PRIx8 102 # ifdef UINT8_MAX 103 # define PRIx8 "x" 104 # endif 105 #endif 106 #if !defined PRIX8 107 # ifdef UINT8_MAX 108 # define PRIX8 "X" 109 # endif 110 #endif 111 #if !defined PRId16 112 # ifdef INT16_MAX 113 # define PRId16 "d" 114 # endif 115 #endif 116 #if !defined PRIi16 117 # ifdef INT16_MAX 118 # define PRIi16 "i" 119 # endif 120 #endif 121 #if !defined PRIo16 122 # ifdef UINT16_MAX 123 # define PRIo16 "o" 124 # endif 125 #endif 126 #if !defined PRIu16 127 # ifdef UINT16_MAX 128 # define PRIu16 "u" 129 # endif 130 #endif 131 #if !defined PRIx16 132 # ifdef UINT16_MAX 133 # define PRIx16 "x" 134 # endif 135 #endif 136 #if !defined PRIX16 137 # ifdef UINT16_MAX 138 # define PRIX16 "X" 139 # endif 140 #endif 141 #if !defined PRId32 142 # ifdef INT32_MAX 143 # define PRId32 "d" 144 # endif 145 #endif 146 #if !defined PRIi32 147 # ifdef INT32_MAX 148 # define PRIi32 "i" 149 # endif 150 #endif 151 #if !defined PRIo32 152 # ifdef UINT32_MAX 153 # define PRIo32 "o" 154 # endif 155 #endif 156 #if !defined PRIu32 157 # ifdef UINT32_MAX 158 # define PRIu32 "u" 159 # endif 160 #endif 161 #if !defined PRIx32 162 # ifdef UINT32_MAX 163 # define PRIx32 "x" 164 # endif 165 #endif 166 #if !defined PRIX32 167 # ifdef UINT32_MAX 168 # define PRIX32 "X" 169 # endif 170 #endif 171 #ifdef INT64_MAX 172 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) 173 # define _PRI64_PREFIX "l" 174 # elif defined _MSC_VER || defined __MINGW32__ 175 # define _PRI64_PREFIX "I64" 176 # elif LONG_MAX >> 30 == 1 177 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX 178 # endif 179 # if !defined PRId64 180 # define PRId64 _PRI64_PREFIX "d" 181 # endif 182 # if !defined PRIi64 183 # define PRIi64 _PRI64_PREFIX "i" 184 # endif 185 #endif 186 #ifdef UINT64_MAX 187 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) 188 # define _PRIu64_PREFIX "l" 189 # elif defined _MSC_VER || defined __MINGW32__ 190 # define _PRIu64_PREFIX "I64" 191 # elif ULONG_MAX >> 31 == 1 192 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX 193 # endif 194 # if !defined PRIo64 195 # define PRIo64 _PRIu64_PREFIX "o" 196 # endif 197 # if !defined PRIu64 198 # define PRIu64 _PRIu64_PREFIX "u" 199 # endif 200 # if !defined PRIx64 201 # define PRIx64 _PRIu64_PREFIX "x" 202 # endif 203 # if !defined PRIX64 204 # define PRIX64 _PRIu64_PREFIX "X" 205 # endif 206 #endif 207 208 #if !defined PRIdLEAST8 209 # define PRIdLEAST8 "d" 210 #endif 211 #if !defined PRIiLEAST8 212 # define PRIiLEAST8 "i" 213 #endif 214 #if !defined PRIoLEAST8 215 # define PRIoLEAST8 "o" 216 #endif 217 #if !defined PRIuLEAST8 218 # define PRIuLEAST8 "u" 219 #endif 220 #if !defined PRIxLEAST8 221 # define PRIxLEAST8 "x" 222 #endif 223 #if !defined PRIXLEAST8 224 # define PRIXLEAST8 "X" 225 #endif 226 #if !defined PRIdLEAST16 227 # define PRIdLEAST16 "d" 228 #endif 229 #if !defined PRIiLEAST16 230 # define PRIiLEAST16 "i" 231 #endif 232 #if !defined PRIoLEAST16 233 # define PRIoLEAST16 "o" 234 #endif 235 #if !defined PRIuLEAST16 236 # define PRIuLEAST16 "u" 237 #endif 238 #if !defined PRIxLEAST16 239 # define PRIxLEAST16 "x" 240 #endif 241 #if !defined PRIXLEAST16 242 # define PRIXLEAST16 "X" 243 #endif 244 #if !defined PRIdLEAST32 245 # define PRIdLEAST32 "d" 246 #endif 247 #if !defined PRIiLEAST32 248 # define PRIiLEAST32 "i" 249 #endif 250 #if !defined PRIoLEAST32 251 # define PRIoLEAST32 "o" 252 #endif 253 #if !defined PRIuLEAST32 254 # define PRIuLEAST32 "u" 255 #endif 256 #if !defined PRIxLEAST32 257 # define PRIxLEAST32 "x" 258 #endif 259 #if !defined PRIXLEAST32 260 # define PRIXLEAST32 "X" 261 #endif 262 #ifdef INT64_MAX 263 # if !defined PRIdLEAST64 264 # define PRIdLEAST64 PRId64 265 # endif 266 # if !defined PRIiLEAST64 267 # define PRIiLEAST64 PRIi64 268 # endif 269 #endif 270 #ifdef UINT64_MAX 271 # if !defined PRIoLEAST64 272 # define PRIoLEAST64 PRIo64 273 # endif 274 # if !defined PRIuLEAST64 275 # define PRIuLEAST64 PRIu64 276 # endif 277 # if !defined PRIxLEAST64 278 # define PRIxLEAST64 PRIx64 279 # endif 280 # if !defined PRIXLEAST64 281 # define PRIXLEAST64 PRIX64 282 # endif 283 #endif 284 285 #if !defined PRIdFAST8 286 # if INT_FAST8_MAX > INT32_MAX 287 # define PRIdFAST8 PRId64 288 # else 289 # define PRIdFAST8 "d" 290 # endif 291 #endif 292 #if !defined PRIiFAST8 293 # if INT_FAST8_MAX > INT32_MAX 294 # define PRIiFAST8 PRIi64 295 # else 296 # define PRIiFAST8 "i" 297 # endif 298 #endif 299 #if !defined PRIoFAST8 300 # if UINT_FAST8_MAX > UINT32_MAX 301 # define PRIoFAST8 PRIo64 302 # else 303 # define PRIoFAST8 "o" 304 # endif 305 #endif 306 #if !defined PRIuFAST8 307 # if UINT_FAST8_MAX > UINT32_MAX 308 # define PRIuFAST8 PRIu64 309 # else 310 # define PRIuFAST8 "u" 311 # endif 312 #endif 313 #if !defined PRIxFAST8 314 # if UINT_FAST8_MAX > UINT32_MAX 315 # define PRIxFAST8 PRIx64 316 # else 317 # define PRIxFAST8 "x" 318 # endif 319 #endif 320 #if !defined PRIXFAST8 321 # if UINT_FAST8_MAX > UINT32_MAX 322 # define PRIXFAST8 PRIX64 323 # else 324 # define PRIXFAST8 "X" 325 # endif 326 #endif 327 #if !defined PRIdFAST16 328 # if INT_FAST16_MAX > INT32_MAX 329 # define PRIdFAST16 PRId64 330 # else 331 # define PRIdFAST16 "d" 332 # endif 333 #endif 334 #if !defined PRIiFAST16 335 # if INT_FAST16_MAX > INT32_MAX 336 # define PRIiFAST16 PRIi64 337 # else 338 # define PRIiFAST16 "i" 339 # endif 340 #endif 341 #if !defined PRIoFAST16 342 # if UINT_FAST16_MAX > UINT32_MAX 343 # define PRIoFAST16 PRIo64 344 # else 345 # define PRIoFAST16 "o" 346 # endif 347 #endif 348 #if !defined PRIuFAST16 349 # if UINT_FAST16_MAX > UINT32_MAX 350 # define PRIuFAST16 PRIu64 351 # else 352 # define PRIuFAST16 "u" 353 # endif 354 #endif 355 #if !defined PRIxFAST16 356 # if UINT_FAST16_MAX > UINT32_MAX 357 # define PRIxFAST16 PRIx64 358 # else 359 # define PRIxFAST16 "x" 360 # endif 361 #endif 362 #if !defined PRIXFAST16 363 # if UINT_FAST16_MAX > UINT32_MAX 364 # define PRIXFAST16 PRIX64 365 # else 366 # define PRIXFAST16 "X" 367 # endif 368 #endif 369 #if !defined PRIdFAST32 370 # if INT_FAST32_MAX > INT32_MAX 371 # define PRIdFAST32 PRId64 372 # else 373 # define PRIdFAST32 "d" 374 # endif 375 #endif 376 #if !defined PRIiFAST32 377 # if INT_FAST32_MAX > INT32_MAX 378 # define PRIiFAST32 PRIi64 379 # else 380 # define PRIiFAST32 "i" 381 # endif 382 #endif 383 #if !defined PRIoFAST32 384 # if UINT_FAST32_MAX > UINT32_MAX 385 # define PRIoFAST32 PRIo64 386 # else 387 # define PRIoFAST32 "o" 388 # endif 389 #endif 390 #if !defined PRIuFAST32 391 # if UINT_FAST32_MAX > UINT32_MAX 392 # define PRIuFAST32 PRIu64 393 # else 394 # define PRIuFAST32 "u" 395 # endif 396 #endif 397 #if !defined PRIxFAST32 398 # if UINT_FAST32_MAX > UINT32_MAX 399 # define PRIxFAST32 PRIx64 400 # else 401 # define PRIxFAST32 "x" 402 # endif 403 #endif 404 #if !defined PRIXFAST32 405 # if UINT_FAST32_MAX > UINT32_MAX 406 # define PRIXFAST32 PRIX64 407 # else 408 # define PRIXFAST32 "X" 409 # endif 410 #endif 411 #ifdef INT64_MAX 412 # if !defined PRIdFAST64 413 # define PRIdFAST64 PRId64 414 # endif 415 # if !defined PRIiFAST64 416 # define PRIiFAST64 PRIi64 417 # endif 418 #endif 419 #ifdef UINT64_MAX 420 # if !defined PRIoFAST64 421 # define PRIoFAST64 PRIo64 422 # endif 423 # if !defined PRIuFAST64 424 # define PRIuFAST64 PRIu64 425 # endif 426 # if !defined PRIxFAST64 427 # define PRIxFAST64 PRIx64 428 # endif 429 # if !defined PRIXFAST64 430 # define PRIXFAST64 PRIX64 431 # endif 432 #endif 433 434 #if !defined PRIdMAX 435 # if @INT32_MAX_LT_INTMAX_MAX@ 436 # define PRIdMAX PRId64 437 # else 438 # define PRIdMAX "ld" 439 # endif 440 #endif 441 #if !defined PRIiMAX 442 # if @INT32_MAX_LT_INTMAX_MAX@ 443 # define PRIiMAX PRIi64 444 # else 445 # define PRIiMAX "li" 446 # endif 447 #endif 448 #if !defined PRIoMAX 449 # if @UINT32_MAX_LT_UINTMAX_MAX@ 450 # define PRIoMAX PRIo64 451 # else 452 # define PRIoMAX "lo" 453 # endif 454 #endif 455 #if !defined PRIuMAX 456 # if @UINT32_MAX_LT_UINTMAX_MAX@ 457 # define PRIuMAX PRIu64 458 # else 459 # define PRIuMAX "lu" 460 # endif 461 #endif 462 #if !defined PRIxMAX 463 # if @UINT32_MAX_LT_UINTMAX_MAX@ 464 # define PRIxMAX PRIx64 465 # else 466 # define PRIxMAX "lx" 467 # endif 468 #endif 469 #if !defined PRIXMAX 470 # if @UINT32_MAX_LT_UINTMAX_MAX@ 471 # define PRIXMAX PRIX64 472 # else 473 # define PRIXMAX "lX" 474 # endif 475 #endif 476 477 #if !defined PRIdPTR 478 # ifdef INTPTR_MAX 479 # define PRIdPTR @PRIPTR_PREFIX@ "d" 480 # endif 481 #endif 482 #if !defined PRIiPTR 483 # ifdef INTPTR_MAX 484 # define PRIiPTR @PRIPTR_PREFIX@ "i" 485 # endif 486 #endif 487 #if !defined PRIoPTR 488 # ifdef UINTPTR_MAX 489 # define PRIoPTR @PRIPTR_PREFIX@ "o" 490 # endif 491 #endif 492 #if !defined PRIuPTR 493 # ifdef UINTPTR_MAX 494 # define PRIuPTR @PRIPTR_PREFIX@ "u" 495 # endif 496 #endif 497 #if !defined PRIxPTR 498 # ifdef UINTPTR_MAX 499 # define PRIxPTR @PRIPTR_PREFIX@ "x" 500 # endif 501 #endif 502 #if !defined PRIXPTR 503 # ifdef UINTPTR_MAX 504 # define PRIXPTR @PRIPTR_PREFIX@ "X" 505 # endif 506 #endif 507 508 #if !defined SCNd8 509 # ifdef INT8_MAX 510 # define SCNd8 "hhd" 511 # endif 512 #endif 513 #if !defined SCNi8 514 # ifdef INT8_MAX 515 # define SCNi8 "hhi" 516 # endif 517 #endif 518 #if !defined SCNo8 519 # ifdef UINT8_MAX 520 # define SCNo8 "hho" 521 # endif 522 #endif 523 #if !defined SCNu8 524 # ifdef UINT8_MAX 525 # define SCNu8 "hhu" 526 # endif 527 #endif 528 #if !defined SCNx8 529 # ifdef UINT8_MAX 530 # define SCNx8 "hhx" 531 # endif 532 #endif 533 #if !defined SCNd16 534 # ifdef INT16_MAX 535 # define SCNd16 "hd" 536 # endif 537 #endif 538 #if !defined SCNi16 539 # ifdef INT16_MAX 540 # define SCNi16 "hi" 541 # endif 542 #endif 543 #if !defined SCNo16 544 # ifdef UINT16_MAX 545 # define SCNo16 "ho" 546 # endif 547 #endif 548 #if !defined SCNu16 549 # ifdef UINT16_MAX 550 # define SCNu16 "hu" 551 # endif 552 #endif 553 #if !defined SCNx16 554 # ifdef UINT16_MAX 555 # define SCNx16 "hx" 556 # endif 557 #endif 558 #if !defined SCNd32 559 # ifdef INT32_MAX 560 # define SCNd32 "d" 561 # endif 562 #endif 563 #if !defined SCNi32 564 # ifdef INT32_MAX 565 # define SCNi32 "i" 566 # endif 567 #endif 568 #if !defined SCNo32 569 # ifdef UINT32_MAX 570 # define SCNo32 "o" 571 # endif 572 #endif 573 #if !defined SCNu32 574 # ifdef UINT32_MAX 575 # define SCNu32 "u" 576 # endif 577 #endif 578 #if !defined SCNx32 579 # ifdef UINT32_MAX 580 # define SCNx32 "x" 581 # endif 582 #endif 583 #ifdef INT64_MAX 584 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) 585 # define _SCN64_PREFIX "l" 586 # elif defined _MSC_VER || defined __MINGW32__ 587 # define _SCN64_PREFIX "I64" 588 # elif LONG_MAX >> 30 == 1 589 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX 590 # endif 591 # if !defined SCNd64 592 # define SCNd64 _SCN64_PREFIX "d" 593 # endif 594 # if !defined SCNi64 595 # define SCNi64 _SCN64_PREFIX "i" 596 # endif 597 #endif 598 #ifdef UINT64_MAX 599 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) 600 # define _SCNu64_PREFIX "l" 601 # elif defined _MSC_VER || defined __MINGW32__ 602 # define _SCNu64_PREFIX "I64" 603 # elif ULONG_MAX >> 31 == 1 604 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX 605 # endif 606 # if !defined SCNo64 607 # define SCNo64 _SCNu64_PREFIX "o" 608 # endif 609 # if !defined SCNu64 610 # define SCNu64 _SCNu64_PREFIX "u" 611 # endif 612 # if !defined SCNx64 613 # define SCNx64 _SCNu64_PREFIX "x" 614 # endif 615 #endif 616 617 #if !defined SCNdLEAST8 618 # define SCNdLEAST8 "hhd" 619 #endif 620 #if !defined SCNiLEAST8 621 # define SCNiLEAST8 "hhi" 622 #endif 623 #if !defined SCNoLEAST8 624 # define SCNoLEAST8 "hho" 625 #endif 626 #if !defined SCNuLEAST8 627 # define SCNuLEAST8 "hhu" 628 #endif 629 #if !defined SCNxLEAST8 630 # define SCNxLEAST8 "hhx" 631 #endif 632 #if !defined SCNdLEAST16 633 # define SCNdLEAST16 "hd" 634 #endif 635 #if !defined SCNiLEAST16 636 # define SCNiLEAST16 "hi" 637 #endif 638 #if !defined SCNoLEAST16 639 # define SCNoLEAST16 "ho" 640 #endif 641 #if !defined SCNuLEAST16 642 # define SCNuLEAST16 "hu" 643 #endif 644 #if !defined SCNxLEAST16 645 # define SCNxLEAST16 "hx" 646 #endif 647 #if !defined SCNdLEAST32 648 # define SCNdLEAST32 "d" 649 #endif 650 #if !defined SCNiLEAST32 651 # define SCNiLEAST32 "i" 652 #endif 653 #if !defined SCNoLEAST32 654 # define SCNoLEAST32 "o" 655 #endif 656 #if !defined SCNuLEAST32 657 # define SCNuLEAST32 "u" 658 #endif 659 #if !defined SCNxLEAST32 660 # define SCNxLEAST32 "x" 661 #endif 662 #ifdef INT64_MAX 663 # if !defined SCNdLEAST64 664 # define SCNdLEAST64 SCNd64 665 # endif 666 # if !defined SCNiLEAST64 667 # define SCNiLEAST64 SCNi64 668 # endif 669 #endif 670 #ifdef UINT64_MAX 671 # if !defined SCNoLEAST64 672 # define SCNoLEAST64 SCNo64 673 # endif 674 # if !defined SCNuLEAST64 675 # define SCNuLEAST64 SCNu64 676 # endif 677 # if !defined SCNxLEAST64 678 # define SCNxLEAST64 SCNx64 679 # endif 680 #endif 681 682 #if !defined SCNdFAST8 683 # if INT_FAST8_MAX > INT32_MAX 684 # define SCNdFAST8 SCNd64 685 # elif INT_FAST8_MAX == 0x7fff 686 # define SCNdFAST8 "hd" 687 # elif INT_FAST8_MAX == 0x7f 688 # define SCNdFAST8 "hhd" 689 # else 690 # define SCNdFAST8 "d" 691 # endif 692 #endif 693 #if !defined SCNiFAST8 694 # if INT_FAST8_MAX > INT32_MAX 695 # define SCNiFAST8 SCNi64 696 # elif INT_FAST8_MAX == 0x7fff 697 # define SCNiFAST8 "hi" 698 # elif INT_FAST8_MAX == 0x7f 699 # define SCNiFAST8 "hhi" 700 # else 701 # define SCNiFAST8 "i" 702 # endif 703 #endif 704 #if !defined SCNoFAST8 705 # if UINT_FAST8_MAX > UINT32_MAX 706 # define SCNoFAST8 SCNo64 707 # elif UINT_FAST8_MAX == 0xffff 708 # define SCNoFAST8 "ho" 709 # elif UINT_FAST8_MAX == 0xff 710 # define SCNoFAST8 "hho" 711 # else 712 # define SCNoFAST8 "o" 713 # endif 714 #endif 715 #if !defined SCNuFAST8 716 # if UINT_FAST8_MAX > UINT32_MAX 717 # define SCNuFAST8 SCNu64 718 # elif UINT_FAST8_MAX == 0xffff 719 # define SCNuFAST8 "hu" 720 # elif UINT_FAST8_MAX == 0xff 721 # define SCNuFAST8 "hhu" 722 # else 723 # define SCNuFAST8 "u" 724 # endif 725 #endif 726 #if !defined SCNxFAST8 727 # if UINT_FAST8_MAX > UINT32_MAX 728 # define SCNxFAST8 SCNx64 729 # elif UINT_FAST8_MAX == 0xffff 730 # define SCNxFAST8 "hx" 731 # elif UINT_FAST8_MAX == 0xff 732 # define SCNxFAST8 "hhx" 733 # else 734 # define SCNxFAST8 "x" 735 # endif 736 #endif 737 #if !defined SCNdFAST16 738 # if INT_FAST16_MAX > INT32_MAX 739 # define SCNdFAST16 SCNd64 740 # elif INT_FAST16_MAX == 0x7fff 741 # define SCNdFAST16 "hd" 742 # else 743 # define SCNdFAST16 "d" 744 # endif 745 #endif 746 #if !defined SCNiFAST16 747 # if INT_FAST16_MAX > INT32_MAX 748 # define SCNiFAST16 SCNi64 749 # elif INT_FAST16_MAX == 0x7fff 750 # define SCNiFAST16 "hi" 751 # else 752 # define SCNiFAST16 "i" 753 # endif 754 #endif 755 #if !defined SCNoFAST16 756 # if UINT_FAST16_MAX > UINT32_MAX 757 # define SCNoFAST16 SCNo64 758 # elif UINT_FAST16_MAX == 0xffff 759 # define SCNoFAST16 "ho" 760 # else 761 # define SCNoFAST16 "o" 762 # endif 763 #endif 764 #if !defined SCNuFAST16 765 # if UINT_FAST16_MAX > UINT32_MAX 766 # define SCNuFAST16 SCNu64 767 # elif UINT_FAST16_MAX == 0xffff 768 # define SCNuFAST16 "hu" 769 # else 770 # define SCNuFAST16 "u" 771 # endif 772 #endif 773 #if !defined SCNxFAST16 774 # if UINT_FAST16_MAX > UINT32_MAX 775 # define SCNxFAST16 SCNx64 776 # elif UINT_FAST16_MAX == 0xffff 777 # define SCNxFAST16 "hx" 778 # else 779 # define SCNxFAST16 "x" 780 # endif 781 #endif 782 #if !defined SCNdFAST32 783 # if INT_FAST32_MAX > INT32_MAX 784 # define SCNdFAST32 SCNd64 785 # else 786 # define SCNdFAST32 "d" 787 # endif 788 #endif 789 #if !defined SCNiFAST32 790 # if INT_FAST32_MAX > INT32_MAX 791 # define SCNiFAST32 SCNi64 792 # else 793 # define SCNiFAST32 "i" 794 # endif 795 #endif 796 #if !defined SCNoFAST32 797 # if UINT_FAST32_MAX > UINT32_MAX 798 # define SCNoFAST32 SCNo64 799 # else 800 # define SCNoFAST32 "o" 801 # endif 802 #endif 803 #if !defined SCNuFAST32 804 # if UINT_FAST32_MAX > UINT32_MAX 805 # define SCNuFAST32 SCNu64 806 # else 807 # define SCNuFAST32 "u" 808 # endif 809 #endif 810 #if !defined SCNxFAST32 811 # if UINT_FAST32_MAX > UINT32_MAX 812 # define SCNxFAST32 SCNx64 813 # else 814 # define SCNxFAST32 "x" 815 # endif 816 #endif 817 #ifdef INT64_MAX 818 # if !defined SCNdFAST64 819 # define SCNdFAST64 SCNd64 820 # endif 821 # if !defined SCNiFAST64 822 # define SCNiFAST64 SCNi64 823 # endif 824 #endif 825 #ifdef UINT64_MAX 826 # if !defined SCNoFAST64 827 # define SCNoFAST64 SCNo64 828 # endif 829 # if !defined SCNuFAST64 830 # define SCNuFAST64 SCNu64 831 # endif 832 # if !defined SCNxFAST64 833 # define SCNxFAST64 SCNx64 834 # endif 835 #endif 836 837 #if !defined SCNdMAX 838 # if @INT32_MAX_LT_INTMAX_MAX@ 839 # define SCNdMAX SCNd64 840 # else 841 # define SCNdMAX "ld" 842 # endif 843 #endif 844 #if !defined SCNiMAX 845 # if @INT32_MAX_LT_INTMAX_MAX@ 846 # define SCNiMAX SCNi64 847 # else 848 # define SCNiMAX "li" 849 # endif 850 #endif 851 #if !defined SCNoMAX 852 # if @UINT32_MAX_LT_UINTMAX_MAX@ 853 # define SCNoMAX SCNo64 854 # else 855 # define SCNoMAX "lo" 856 # endif 857 #endif 858 #if !defined SCNuMAX 859 # if @UINT32_MAX_LT_UINTMAX_MAX@ 860 # define SCNuMAX SCNu64 861 # else 862 # define SCNuMAX "lu" 863 # endif 864 #endif 865 #if !defined SCNxMAX 866 # if @UINT32_MAX_LT_UINTMAX_MAX@ 867 # define SCNxMAX SCNx64 868 # else 869 # define SCNxMAX "lx" 870 # endif 871 #endif 872 873 #if !defined SCNdPTR 874 # ifdef INTPTR_MAX 875 # define SCNdPTR @PRIPTR_PREFIX@ "d" 876 # endif 877 #endif 878 #if !defined SCNiPTR 879 # ifdef INTPTR_MAX 880 # define SCNiPTR @PRIPTR_PREFIX@ "i" 881 # endif 882 #endif 883 #if !defined SCNoPTR 884 # ifdef UINTPTR_MAX 885 # define SCNoPTR @PRIPTR_PREFIX@ "o" 886 # endif 887 #endif 888 #if !defined SCNuPTR 889 # ifdef UINTPTR_MAX 890 # define SCNuPTR @PRIPTR_PREFIX@ "u" 891 # endif 892 #endif 893 #if !defined SCNxPTR 894 # ifdef UINTPTR_MAX 895 # define SCNxPTR @PRIPTR_PREFIX@ "x" 896 # endif 897 #endif 898 899 /* 7.8.2 Functions for greatest-width integer types */ 900 901 #ifdef __cplusplus 902 extern "C" { 903 #endif 904 905 #if @GNULIB_IMAXABS@ 906 # if !@HAVE_DECL_IMAXABS@ 907 extern intmax_t imaxabs (intmax_t); 908 # endif 909 #elif defined GNULIB_POSIXCHECK 910 # undef imaxabs 911 # if HAVE_RAW_DECL_IMAXABS 912 _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " 913 "use gnulib module imaxabs for portability"); 914 # endif 915 #endif 916 917 #if @GNULIB_IMAXDIV@ 918 # if !@HAVE_IMAXDIV_T@ 919 # if !GNULIB_defined_imaxdiv_t 920 typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; 921 # define GNULIB_defined_imaxdiv_t 1 922 # endif 923 # endif 924 # if !@HAVE_DECL_IMAXDIV@ 925 extern imaxdiv_t imaxdiv (intmax_t, intmax_t); 926 # endif 927 #elif defined GNULIB_POSIXCHECK 928 # undef imaxdiv 929 # if HAVE_RAW_DECL_IMAXDIV 930 _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " 931 "use gnulib module imaxdiv for portability"); 932 # endif 933 #endif 934 935 #if @GNULIB_STRTOIMAX@ 936 # if @REPLACE_STRTOIMAX@ 937 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 938 # undef strtoimax 939 # define strtoimax rpl_strtoimax 940 # endif 941 _GL_FUNCDECL_RPL (strtoimax, intmax_t, 942 (const char *restrict, char **restrict, int) 943 _GL_ARG_NONNULL ((1))); 944 _GL_CXXALIAS_RPL (strtoimax, intmax_t, 945 (const char *restrict, char **restrict, int)); 946 # else 947 # if !@HAVE_DECL_STRTOIMAX@ 948 # undef strtoimax 949 _GL_FUNCDECL_SYS (strtoimax, intmax_t, 950 (const char *restrict, char **restrict, int) 951 _GL_ARG_NONNULL ((1))); 952 # endif 953 _GL_CXXALIAS_SYS (strtoimax, intmax_t, 954 (const char *restrict, char **restrict, int)); 955 # endif 956 _GL_CXXALIASWARN (strtoimax); 957 #elif defined GNULIB_POSIXCHECK 958 # undef strtoimax 959 # if HAVE_RAW_DECL_STRTOIMAX 960 _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " 961 "use gnulib module strtoimax for portability"); 962 # endif 963 #endif 964 965 #if @GNULIB_STRTOUMAX@ 966 # if @REPLACE_STRTOUMAX@ 967 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 968 # undef strtoumax 969 # define strtoumax rpl_strtoumax 970 # endif 971 _GL_FUNCDECL_RPL (strtoumax, uintmax_t, 972 (const char *restrict, char **restrict, int) 973 _GL_ARG_NONNULL ((1))); 974 _GL_CXXALIAS_RPL (strtoumax, uintmax_t, 975 (const char *restrict, char **restrict, int)); 976 # else 977 # if !@HAVE_DECL_STRTOUMAX@ 978 # undef strtoumax 979 _GL_FUNCDECL_SYS (strtoumax, uintmax_t, 980 (const char *restrict, char **restrict, int) 981 _GL_ARG_NONNULL ((1))); 982 # endif 983 _GL_CXXALIAS_SYS (strtoumax, uintmax_t, 984 (const char *restrict, char **restrict, int)); 985 # endif 986 _GL_CXXALIASWARN (strtoumax); 987 #elif defined GNULIB_POSIXCHECK 988 # undef strtoumax 989 # if HAVE_RAW_DECL_STRTOUMAX 990 _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " 991 "use gnulib module strtoumax for portability"); 992 # endif 993 #endif 994 995 /* Don't bother defining or declaring wcstoimax and wcstoumax, since 996 wide-character functions like this are hardly ever useful. */ 997 998 #ifdef __cplusplus 999 } 1000 #endif 1001 1002 #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ 1003