1 /* Copyright (C) 2006-2024 Free Software Foundation, Inc.
2 Written by Paul Eggert, Bruno Haible, Derek Price.
3 This file is part of gnulib.
5 This file is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as
7 published by the Free Software Foundation; either version 2.1 of the
8 License, or (at your option) any later version.
10 This file 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 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
19 * ISO C 99 <inttypes.h> for platforms that lack it.
20 * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html>
24 @PRAGMA_SYSTEM_HEADER@
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@
35 /* Some pre-C++11 <stdint.h> implementations need this. */
36 # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
37 # define __STDC_FORMAT_MACROS 1
40 # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@
42 # define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H
46 #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
49 /* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */
50 #if !_GL_CONFIG_H_INCLUDED
51 #error "Please include config.h first."
54 /* Include <stdint.h> or the gnulib replacement.
55 But avoid namespace pollution on glibc systems. */
59 /* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */
61 /* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */
62 #if defined _WIN32 && ! defined __CYGWIN__
66 #if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1)
67 # error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to <bug-gnulib@gnu.org>."
70 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
72 /* The definition of _GL_ARG_NONNULL is copied here. */
74 /* The definition of _GL_WARN_ON_USE is copied here. */
76 /* 7.8.1 Macros for format specifiers */
78 #if defined _TNS_R_TARGET
79 /* Tandem NonStop R series and compatible platforms released before
80 July 2005 support %Ld but not %lld. */
81 # define _LONG_LONG_FORMAT_PREFIX "L"
83 # define _LONG_LONG_FORMAT_PREFIX "ll"
177 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
178 # define _PRI64_PREFIX "l"
179 # elif defined _MSC_VER || defined __MINGW32__
180 # define _PRI64_PREFIX "I64"
181 # elif LONG_MAX >> 30 == 1
182 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
185 # define PRId64 _PRI64_PREFIX "d"
188 # define PRIi64 _PRI64_PREFIX "i"
192 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
193 # define _PRIu64_PREFIX "l"
194 # elif defined _MSC_VER || defined __MINGW32__
195 # define _PRIu64_PREFIX "I64"
196 # elif ULONG_MAX >> 31 == 1
197 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
200 # define PRIo64 _PRIu64_PREFIX "o"
203 # define PRIu64 _PRIu64_PREFIX "u"
206 # define PRIx64 _PRIu64_PREFIX "x"
209 # define PRIX64 _PRIu64_PREFIX "X"
213 #if !defined PRIdLEAST8
214 # define PRIdLEAST8 "d"
216 #if !defined PRIiLEAST8
217 # define PRIiLEAST8 "i"
219 #if !defined PRIoLEAST8
220 # define PRIoLEAST8 "o"
222 #if !defined PRIuLEAST8
223 # define PRIuLEAST8 "u"
225 #if !defined PRIxLEAST8
226 # define PRIxLEAST8 "x"
228 #if !defined PRIXLEAST8
229 # define PRIXLEAST8 "X"
231 #if !defined PRIdLEAST16
232 # define PRIdLEAST16 "d"
234 #if !defined PRIiLEAST16
235 # define PRIiLEAST16 "i"
237 #if !defined PRIoLEAST16
238 # define PRIoLEAST16 "o"
240 #if !defined PRIuLEAST16
241 # define PRIuLEAST16 "u"
243 #if !defined PRIxLEAST16
244 # define PRIxLEAST16 "x"
246 #if !defined PRIXLEAST16
247 # define PRIXLEAST16 "X"
249 #if !defined PRIdLEAST32
250 # define PRIdLEAST32 "d"
252 #if !defined PRIiLEAST32
253 # define PRIiLEAST32 "i"
255 #if !defined PRIoLEAST32
256 # define PRIoLEAST32 "o"
258 #if !defined PRIuLEAST32
259 # define PRIuLEAST32 "u"
261 #if !defined PRIxLEAST32
262 # define PRIxLEAST32 "x"
264 #if !defined PRIXLEAST32
265 # define PRIXLEAST32 "X"
268 # if !defined PRIdLEAST64
269 # define PRIdLEAST64 PRId64
271 # if !defined PRIiLEAST64
272 # define PRIiLEAST64 PRIi64
276 # if !defined PRIoLEAST64
277 # define PRIoLEAST64 PRIo64
279 # if !defined PRIuLEAST64
280 # define PRIuLEAST64 PRIu64
282 # if !defined PRIxLEAST64
283 # define PRIxLEAST64 PRIx64
285 # if !defined PRIXLEAST64
286 # define PRIXLEAST64 PRIX64
290 #if !defined PRIdFAST8
291 # if INT_FAST8_MAX > INT32_MAX
292 # define PRIdFAST8 PRId64
294 # define PRIdFAST8 "d"
297 #if !defined PRIiFAST8
298 # if INT_FAST8_MAX > INT32_MAX
299 # define PRIiFAST8 PRIi64
301 # define PRIiFAST8 "i"
304 #if !defined PRIoFAST8
305 # if UINT_FAST8_MAX > UINT32_MAX
306 # define PRIoFAST8 PRIo64
308 # define PRIoFAST8 "o"
311 #if !defined PRIuFAST8
312 # if UINT_FAST8_MAX > UINT32_MAX
313 # define PRIuFAST8 PRIu64
315 # define PRIuFAST8 "u"
318 #if !defined PRIxFAST8
319 # if UINT_FAST8_MAX > UINT32_MAX
320 # define PRIxFAST8 PRIx64
322 # define PRIxFAST8 "x"
325 #if !defined PRIXFAST8
326 # if UINT_FAST8_MAX > UINT32_MAX
327 # define PRIXFAST8 PRIX64
329 # define PRIXFAST8 "X"
332 #if !defined PRIdFAST16
333 # if INT_FAST16_MAX > INT32_MAX
334 # define PRIdFAST16 PRId64
336 # define PRIdFAST16 "d"
339 #if !defined PRIiFAST16
340 # if INT_FAST16_MAX > INT32_MAX
341 # define PRIiFAST16 PRIi64
343 # define PRIiFAST16 "i"
346 #if !defined PRIoFAST16
347 # if UINT_FAST16_MAX > UINT32_MAX
348 # define PRIoFAST16 PRIo64
350 # define PRIoFAST16 "o"
353 #if !defined PRIuFAST16
354 # if UINT_FAST16_MAX > UINT32_MAX
355 # define PRIuFAST16 PRIu64
357 # define PRIuFAST16 "u"
360 #if !defined PRIxFAST16
361 # if UINT_FAST16_MAX > UINT32_MAX
362 # define PRIxFAST16 PRIx64
364 # define PRIxFAST16 "x"
367 #if !defined PRIXFAST16
368 # if UINT_FAST16_MAX > UINT32_MAX
369 # define PRIXFAST16 PRIX64
371 # define PRIXFAST16 "X"
374 #if !defined PRIdFAST32
375 # if INT_FAST32_MAX > INT32_MAX
376 # define PRIdFAST32 PRId64
378 # define PRIdFAST32 "d"
381 #if !defined PRIiFAST32
382 # if INT_FAST32_MAX > INT32_MAX
383 # define PRIiFAST32 PRIi64
385 # define PRIiFAST32 "i"
388 #if !defined PRIoFAST32
389 # if UINT_FAST32_MAX > UINT32_MAX
390 # define PRIoFAST32 PRIo64
392 # define PRIoFAST32 "o"
395 #if !defined PRIuFAST32
396 # if UINT_FAST32_MAX > UINT32_MAX
397 # define PRIuFAST32 PRIu64
399 # define PRIuFAST32 "u"
402 #if !defined PRIxFAST32
403 # if UINT_FAST32_MAX > UINT32_MAX
404 # define PRIxFAST32 PRIx64
406 # define PRIxFAST32 "x"
409 #if !defined PRIXFAST32
410 # if UINT_FAST32_MAX > UINT32_MAX
411 # define PRIXFAST32 PRIX64
413 # define PRIXFAST32 "X"
417 # if !defined PRIdFAST64
418 # define PRIdFAST64 PRId64
420 # if !defined PRIiFAST64
421 # define PRIiFAST64 PRIi64
425 # if !defined PRIoFAST64
426 # define PRIoFAST64 PRIo64
428 # if !defined PRIuFAST64
429 # define PRIuFAST64 PRIu64
431 # if !defined PRIxFAST64
432 # define PRIxFAST64 PRIx64
434 # if !defined PRIXFAST64
435 # define PRIXFAST64 PRIX64
440 # if @INT32_MAX_LT_INTMAX_MAX@
441 # define PRIdMAX PRId64
443 # define PRIdMAX "ld"
447 # if @INT32_MAX_LT_INTMAX_MAX@
448 # define PRIiMAX PRIi64
450 # define PRIiMAX "li"
454 # if @UINT32_MAX_LT_UINTMAX_MAX@
455 # define PRIoMAX PRIo64
457 # define PRIoMAX "lo"
461 # if @UINT32_MAX_LT_UINTMAX_MAX@
462 # define PRIuMAX PRIu64
464 # define PRIuMAX "lu"
468 # if @UINT32_MAX_LT_UINTMAX_MAX@
469 # define PRIxMAX PRIx64
471 # define PRIxMAX "lx"
475 # if @UINT32_MAX_LT_UINTMAX_MAX@
476 # define PRIXMAX PRIX64
478 # define PRIXMAX "lX"
484 # define PRIdPTR @PRIPTR_PREFIX@ "d"
489 # define PRIiPTR @PRIPTR_PREFIX@ "i"
494 # define PRIoPTR @PRIPTR_PREFIX@ "o"
499 # define PRIuPTR @PRIPTR_PREFIX@ "u"
504 # define PRIxPTR @PRIPTR_PREFIX@ "x"
509 # define PRIXPTR @PRIPTR_PREFIX@ "X"
589 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
590 # define _SCN64_PREFIX "l"
591 # elif defined _MSC_VER || defined __MINGW32__
592 # define _SCN64_PREFIX "I64"
593 # elif LONG_MAX >> 30 == 1
594 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
597 # define SCNd64 _SCN64_PREFIX "d"
600 # define SCNi64 _SCN64_PREFIX "i"
604 # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
605 # define _SCNu64_PREFIX "l"
606 # elif defined _MSC_VER || defined __MINGW32__
607 # define _SCNu64_PREFIX "I64"
608 # elif ULONG_MAX >> 31 == 1
609 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
612 # define SCNo64 _SCNu64_PREFIX "o"
615 # define SCNu64 _SCNu64_PREFIX "u"
618 # define SCNx64 _SCNu64_PREFIX "x"
622 #if !defined SCNdLEAST8
623 # define SCNdLEAST8 "hhd"
625 #if !defined SCNiLEAST8
626 # define SCNiLEAST8 "hhi"
628 #if !defined SCNoLEAST8
629 # define SCNoLEAST8 "hho"
631 #if !defined SCNuLEAST8
632 # define SCNuLEAST8 "hhu"
634 #if !defined SCNxLEAST8
635 # define SCNxLEAST8 "hhx"
637 #if !defined SCNdLEAST16
638 # define SCNdLEAST16 "hd"
640 #if !defined SCNiLEAST16
641 # define SCNiLEAST16 "hi"
643 #if !defined SCNoLEAST16
644 # define SCNoLEAST16 "ho"
646 #if !defined SCNuLEAST16
647 # define SCNuLEAST16 "hu"
649 #if !defined SCNxLEAST16
650 # define SCNxLEAST16 "hx"
652 #if !defined SCNdLEAST32
653 # define SCNdLEAST32 "d"
655 #if !defined SCNiLEAST32
656 # define SCNiLEAST32 "i"
658 #if !defined SCNoLEAST32
659 # define SCNoLEAST32 "o"
661 #if !defined SCNuLEAST32
662 # define SCNuLEAST32 "u"
664 #if !defined SCNxLEAST32
665 # define SCNxLEAST32 "x"
668 # if !defined SCNdLEAST64
669 # define SCNdLEAST64 SCNd64
671 # if !defined SCNiLEAST64
672 # define SCNiLEAST64 SCNi64
676 # if !defined SCNoLEAST64
677 # define SCNoLEAST64 SCNo64
679 # if !defined SCNuLEAST64
680 # define SCNuLEAST64 SCNu64
682 # if !defined SCNxLEAST64
683 # define SCNxLEAST64 SCNx64
687 #if !defined SCNdFAST8
688 # if INT_FAST8_MAX > INT32_MAX
689 # define SCNdFAST8 SCNd64
690 # elif INT_FAST8_MAX == 0x7fff
691 # define SCNdFAST8 "hd"
692 # elif INT_FAST8_MAX == 0x7f
693 # define SCNdFAST8 "hhd"
695 # define SCNdFAST8 "d"
698 #if !defined SCNiFAST8
699 # if INT_FAST8_MAX > INT32_MAX
700 # define SCNiFAST8 SCNi64
701 # elif INT_FAST8_MAX == 0x7fff
702 # define SCNiFAST8 "hi"
703 # elif INT_FAST8_MAX == 0x7f
704 # define SCNiFAST8 "hhi"
706 # define SCNiFAST8 "i"
709 #if !defined SCNoFAST8
710 # if UINT_FAST8_MAX > UINT32_MAX
711 # define SCNoFAST8 SCNo64
712 # elif UINT_FAST8_MAX == 0xffff
713 # define SCNoFAST8 "ho"
714 # elif UINT_FAST8_MAX == 0xff
715 # define SCNoFAST8 "hho"
717 # define SCNoFAST8 "o"
720 #if !defined SCNuFAST8
721 # if UINT_FAST8_MAX > UINT32_MAX
722 # define SCNuFAST8 SCNu64
723 # elif UINT_FAST8_MAX == 0xffff
724 # define SCNuFAST8 "hu"
725 # elif UINT_FAST8_MAX == 0xff
726 # define SCNuFAST8 "hhu"
728 # define SCNuFAST8 "u"
731 #if !defined SCNxFAST8
732 # if UINT_FAST8_MAX > UINT32_MAX
733 # define SCNxFAST8 SCNx64
734 # elif UINT_FAST8_MAX == 0xffff
735 # define SCNxFAST8 "hx"
736 # elif UINT_FAST8_MAX == 0xff
737 # define SCNxFAST8 "hhx"
739 # define SCNxFAST8 "x"
742 #if !defined SCNdFAST16
743 # if INT_FAST16_MAX > INT32_MAX
744 # define SCNdFAST16 SCNd64
745 # elif INT_FAST16_MAX == 0x7fff
746 # define SCNdFAST16 "hd"
748 # define SCNdFAST16 "d"
751 #if !defined SCNiFAST16
752 # if INT_FAST16_MAX > INT32_MAX
753 # define SCNiFAST16 SCNi64
754 # elif INT_FAST16_MAX == 0x7fff
755 # define SCNiFAST16 "hi"
757 # define SCNiFAST16 "i"
760 #if !defined SCNoFAST16
761 # if UINT_FAST16_MAX > UINT32_MAX
762 # define SCNoFAST16 SCNo64
763 # elif UINT_FAST16_MAX == 0xffff
764 # define SCNoFAST16 "ho"
766 # define SCNoFAST16 "o"
769 #if !defined SCNuFAST16
770 # if UINT_FAST16_MAX > UINT32_MAX
771 # define SCNuFAST16 SCNu64
772 # elif UINT_FAST16_MAX == 0xffff
773 # define SCNuFAST16 "hu"
775 # define SCNuFAST16 "u"
778 #if !defined SCNxFAST16
779 # if UINT_FAST16_MAX > UINT32_MAX
780 # define SCNxFAST16 SCNx64
781 # elif UINT_FAST16_MAX == 0xffff
782 # define SCNxFAST16 "hx"
784 # define SCNxFAST16 "x"
787 #if !defined SCNdFAST32
788 # if INT_FAST32_MAX > INT32_MAX
789 # define SCNdFAST32 SCNd64
791 # define SCNdFAST32 "d"
794 #if !defined SCNiFAST32
795 # if INT_FAST32_MAX > INT32_MAX
796 # define SCNiFAST32 SCNi64
798 # define SCNiFAST32 "i"
801 #if !defined SCNoFAST32
802 # if UINT_FAST32_MAX > UINT32_MAX
803 # define SCNoFAST32 SCNo64
805 # define SCNoFAST32 "o"
808 #if !defined SCNuFAST32
809 # if UINT_FAST32_MAX > UINT32_MAX
810 # define SCNuFAST32 SCNu64
812 # define SCNuFAST32 "u"
815 #if !defined SCNxFAST32
816 # if UINT_FAST32_MAX > UINT32_MAX
817 # define SCNxFAST32 SCNx64
819 # define SCNxFAST32 "x"
823 # if !defined SCNdFAST64
824 # define SCNdFAST64 SCNd64
826 # if !defined SCNiFAST64
827 # define SCNiFAST64 SCNi64
831 # if !defined SCNoFAST64
832 # define SCNoFAST64 SCNo64
834 # if !defined SCNuFAST64
835 # define SCNuFAST64 SCNu64
837 # if !defined SCNxFAST64
838 # define SCNxFAST64 SCNx64
843 # if @INT32_MAX_LT_INTMAX_MAX@
844 # define SCNdMAX SCNd64
846 # define SCNdMAX "ld"
850 # if @INT32_MAX_LT_INTMAX_MAX@
851 # define SCNiMAX SCNi64
853 # define SCNiMAX "li"
857 # if @UINT32_MAX_LT_UINTMAX_MAX@
858 # define SCNoMAX SCNo64
860 # define SCNoMAX "lo"
864 # if @UINT32_MAX_LT_UINTMAX_MAX@
865 # define SCNuMAX SCNu64
867 # define SCNuMAX "lu"
871 # if @UINT32_MAX_LT_UINTMAX_MAX@
872 # define SCNxMAX SCNx64
874 # define SCNxMAX "lx"
880 # define SCNdPTR @PRIPTR_PREFIX@ "d"
885 # define SCNiPTR @PRIPTR_PREFIX@ "i"
890 # define SCNoPTR @PRIPTR_PREFIX@ "o"
895 # define SCNuPTR @PRIPTR_PREFIX@ "u"
900 # define SCNxPTR @PRIPTR_PREFIX@ "x"
904 /* 7.8.2 Functions for greatest-width integer types */
911 # if @REPLACE_IMAXABS@
912 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
914 # define imaxabs rpl_imaxabs
916 _GL_FUNCDECL_RPL (imaxabs
, intmax_t, (intmax_t x
));
917 _GL_CXXALIAS_RPL (imaxabs
, intmax_t, (intmax_t x
));
919 # if !@HAVE_DECL_IMAXABS@
920 _GL_FUNCDECL_SYS (imaxabs
, intmax_t, (intmax_t x
));
922 _GL_CXXALIAS_SYS (imaxabs
, intmax_t, (intmax_t x
));
925 _GL_CXXALIASWARN (imaxabs
);
927 #elif defined GNULIB_POSIXCHECK
929 # if HAVE_RAW_DECL_IMAXABS
930 _GL_WARN_ON_USE (imaxabs
, "imaxabs is unportable - "
931 "use gnulib module imaxabs for portability");
936 # if !@HAVE_IMAXDIV_T@
937 # if !GNULIB_defined_imaxdiv_t
938 typedef struct { intmax_t quot
; intmax_t rem
; } imaxdiv_t
;
939 # define GNULIB_defined_imaxdiv_t 1
942 # if @REPLACE_IMAXDIV@
943 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
945 # define imaxdiv rpl_imaxdiv
947 _GL_FUNCDECL_RPL (imaxdiv
, imaxdiv_t
, (intmax_t numer
, intmax_t denom
));
948 _GL_CXXALIAS_RPL (imaxdiv
, imaxdiv_t
, (intmax_t numer
, intmax_t denom
));
950 # if !@HAVE_DECL_IMAXDIV@
951 _GL_FUNCDECL_SYS (imaxdiv
, imaxdiv_t
, (intmax_t numer
, intmax_t denom
));
953 _GL_CXXALIAS_SYS (imaxdiv
, imaxdiv_t
, (intmax_t numer
, intmax_t denom
));
956 _GL_CXXALIASWARN (imaxdiv
);
958 #elif defined GNULIB_POSIXCHECK
960 # if HAVE_RAW_DECL_IMAXDIV
961 _GL_WARN_ON_USE (imaxdiv
, "imaxdiv is unportable - "
962 "use gnulib module imaxdiv for portability");
966 #if @GNULIB_STRTOIMAX@
967 # if @REPLACE_STRTOIMAX@
968 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
970 # define strtoimax rpl_strtoimax
972 _GL_FUNCDECL_RPL (strtoimax
, intmax_t,
973 (const char *restrict
, char **restrict
, int)
974 _GL_ARG_NONNULL ((1)));
975 _GL_CXXALIAS_RPL (strtoimax
, intmax_t,
976 (const char *restrict
, char **restrict
, int));
978 # if !@HAVE_DECL_STRTOIMAX@
980 _GL_FUNCDECL_SYS (strtoimax
, intmax_t,
981 (const char *restrict
, char **restrict
, int)
982 _GL_ARG_NONNULL ((1)));
984 _GL_CXXALIAS_SYS (strtoimax
, intmax_t,
985 (const char *restrict
, char **restrict
, int));
987 _GL_CXXALIASWARN (strtoimax
);
988 #elif defined GNULIB_POSIXCHECK
990 # if HAVE_RAW_DECL_STRTOIMAX
991 _GL_WARN_ON_USE (strtoimax
, "strtoimax is unportable - "
992 "use gnulib module strtoimax for portability");
996 #if @GNULIB_STRTOUMAX@
997 # if @REPLACE_STRTOUMAX@
998 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1000 # define strtoumax rpl_strtoumax
1002 _GL_FUNCDECL_RPL (strtoumax
, uintmax_t,
1003 (const char *restrict
, char **restrict
, int)
1004 _GL_ARG_NONNULL ((1)));
1005 _GL_CXXALIAS_RPL (strtoumax
, uintmax_t,
1006 (const char *restrict
, char **restrict
, int));
1008 # if !@HAVE_DECL_STRTOUMAX@
1010 _GL_FUNCDECL_SYS (strtoumax
, uintmax_t,
1011 (const char *restrict
, char **restrict
, int)
1012 _GL_ARG_NONNULL ((1)));
1014 _GL_CXXALIAS_SYS (strtoumax
, uintmax_t,
1015 (const char *restrict
, char **restrict
, int));
1017 _GL_CXXALIASWARN (strtoumax
);
1018 #elif defined GNULIB_POSIXCHECK
1020 # if HAVE_RAW_DECL_STRTOUMAX
1021 _GL_WARN_ON_USE (strtoumax
, "strtoumax is unportable - "
1022 "use gnulib module strtoumax for portability");
1026 /* Don't bother defining or declaring wcstoimax and wcstoumax, since
1027 wide-character functions like this are hardly ever useful. */
1033 #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */