Loading...
include/inttypes.h Libc-391 Libc-583
--- Libc/Libc-391/include/inttypes.h
+++ Libc/Libc-583/include/inttypes.h
@@ -28,6 +28,225 @@
  * and their ilk.
  */
 
+/* "C++ implementations should define these macros only when
+ *  __STDC_FORMAT_MACROS is defined before <inttypes.h> is included."
+ */
+#if (!defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)) && !defined(__STDC_FORMAT_MACROS_DEFINED)
+#define __STDC_FORMAT_MACROS_DEFINED
+
+#  undef __PRI_8_LENGTH_MODIFIER__
+#  undef __PRI_64_LENGTH_MODIFIER__
+#  undef __SCN_64_LENGTH_MODIFIER__
+
+#  if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0 > 1020
+#    define __PRI_8_LENGTH_MODIFIER__ "hh"
+#    define __PRI_64_LENGTH_MODIFIER__ "ll"
+#    define __SCN_64_LENGTH_MODIFIER__ "ll"
+#  else
+/* These could be "hh", "ll", and "ll" respectively, but that doesn't work on
+   10.2, and these do.  Note that there's no way to use scanf to scan a
+   decimal into a 'char' argument on 10.2, so "hh" is used unconditionally
+   and programs that use it won't work on Jaguar.  */
+#    define __PRI_8_LENGTH_MODIFIER__ ""  /* none */
+#    define __PRI_64_LENGTH_MODIFIER__ "q"
+#    define __SCN_64_LENGTH_MODIFIER__ "q"
+#  endif
+#  define __PRI_MAX_LENGTH_MODIFIER__ "j"
+#  define __SCN_MAX_LENGTH_MODIFIER__ "j"
+
+#  define PRId8         __PRI_8_LENGTH_MODIFIER__ "d"
+#  define PRIi8         __PRI_8_LENGTH_MODIFIER__ "i"
+#  define PRIo8         __PRI_8_LENGTH_MODIFIER__ "o"
+#  define PRIu8         __PRI_8_LENGTH_MODIFIER__ "u"
+#  define PRIx8         __PRI_8_LENGTH_MODIFIER__ "x"
+#  define PRIX8         __PRI_8_LENGTH_MODIFIER__ "X"
+
+#  define PRId16        "hd"
+#  define PRIi16        "hi"
+#  define PRIo16        "ho"
+#  define PRIu16        "hu"
+#  define PRIx16        "hx"
+#  define PRIX16        "hX"
+
+#  define PRId32        "d"
+#  define PRIi32        "i"
+#  define PRIo32        "o"
+#  define PRIu32        "u"
+#  define PRIx32        "x"
+#  define PRIX32        "X"
+
+#  define PRId64        __PRI_64_LENGTH_MODIFIER__ "d"
+#  define PRIi64        __PRI_64_LENGTH_MODIFIER__ "i"
+#  define PRIo64        __PRI_64_LENGTH_MODIFIER__ "o"
+#  define PRIu64        __PRI_64_LENGTH_MODIFIER__ "u"
+#  define PRIx64        __PRI_64_LENGTH_MODIFIER__ "x"
+#  define PRIX64        __PRI_64_LENGTH_MODIFIER__ "X"
+
+#  define PRIdLEAST8    PRId8
+#  define PRIiLEAST8    PRIi8
+#  define PRIoLEAST8    PRIo8
+#  define PRIuLEAST8    PRIu8
+#  define PRIxLEAST8    PRIx8
+#  define PRIXLEAST8    PRIX8
+
+#  define PRIdLEAST16   PRId16
+#  define PRIiLEAST16   PRIi16
+#  define PRIoLEAST16   PRIo16
+#  define PRIuLEAST16   PRIu16
+#  define PRIxLEAST16   PRIx16
+#  define PRIXLEAST16   PRIX16
+
+#  define PRIdLEAST32   PRId32
+#  define PRIiLEAST32   PRIi32
+#  define PRIoLEAST32   PRIo32
+#  define PRIuLEAST32   PRIu32
+#  define PRIxLEAST32   PRIx32
+#  define PRIXLEAST32   PRIX32
+
+#  define PRIdLEAST64   PRId64
+#  define PRIiLEAST64   PRIi64
+#  define PRIoLEAST64   PRIo64
+#  define PRIuLEAST64   PRIu64
+#  define PRIxLEAST64   PRIx64
+#  define PRIXLEAST64   PRIX64
+
+#  define PRIdFAST8     PRId8
+#  define PRIiFAST8     PRIi8
+#  define PRIoFAST8     PRIo8
+#  define PRIuFAST8     PRIu8
+#  define PRIxFAST8     PRIx8
+#  define PRIXFAST8     PRIX8
+
+#  define PRIdFAST16    PRId16
+#  define PRIiFAST16    PRIi16
+#  define PRIoFAST16    PRIo16
+#  define PRIuFAST16    PRIu16
+#  define PRIxFAST16    PRIx16
+#  define PRIXFAST16    PRIX16
+
+#  define PRIdFAST32    PRId32
+#  define PRIiFAST32    PRIi32
+#  define PRIoFAST32    PRIo32
+#  define PRIuFAST32    PRIu32
+#  define PRIxFAST32    PRIx32
+#  define PRIXFAST32    PRIX32
+
+#  define PRIdFAST64    PRId64
+#  define PRIiFAST64    PRIi64
+#  define PRIoFAST64    PRIo64
+#  define PRIuFAST64    PRIu64
+#  define PRIxFAST64    PRIx64
+#  define PRIXFAST64    PRIX64
+
+/* int32_t is 'int', but intptr_t is 'long'.  */
+#  define PRIdPTR       "ld"
+#  define PRIiPTR       "li"
+#  define PRIoPTR       "lo"
+#  define PRIuPTR       "lu"
+#  define PRIxPTR       "lx"
+#  define PRIXPTR       "lX"
+
+#  define PRIdMAX        __PRI_MAX_LENGTH_MODIFIER__ "d"
+#  define PRIiMAX        __PRI_MAX_LENGTH_MODIFIER__ "i"
+#  define PRIoMAX        __PRI_MAX_LENGTH_MODIFIER__ "o"
+#  define PRIuMAX        __PRI_MAX_LENGTH_MODIFIER__ "u"
+#  define PRIxMAX        __PRI_MAX_LENGTH_MODIFIER__ "x"
+#  define PRIXMAX        __PRI_MAX_LENGTH_MODIFIER__ "X"
+
+#  if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0 > 1020
+#    define SCNd8         __PRI_8_LENGTH_MODIFIER__ "d"
+#    define SCNi8         __PRI_8_LENGTH_MODIFIER__ "i"
+#    define SCNo8         __PRI_8_LENGTH_MODIFIER__ "o"
+#    define SCNu8         __PRI_8_LENGTH_MODIFIER__ "u"
+#    define SCNx8         __PRI_8_LENGTH_MODIFIER__ "x"
+#  else
+#    define SCNd8         "hhd"
+#    define SCNi8         "hhi"
+#    define SCNo8         "hho"
+#    define SCNu8         "hhu"
+#    define SCNx8         "hhx"
+#  endif
+
+#  define SCNd16        "hd"
+#  define SCNi16        "hi"
+#  define SCNo16        "ho"
+#  define SCNu16        "hu"
+#  define SCNx16        "hx"
+
+#  define SCNd32        "d"
+#  define SCNi32        "i"
+#  define SCNo32        "o"
+#  define SCNu32        "u"
+#  define SCNx32        "x"
+
+#  define SCNd64        __SCN_64_LENGTH_MODIFIER__ "d"
+#  define SCNi64        __SCN_64_LENGTH_MODIFIER__ "i"
+#  define SCNo64        __SCN_64_LENGTH_MODIFIER__ "o"
+#  define SCNu64        __SCN_64_LENGTH_MODIFIER__ "u"
+#  define SCNx64        __SCN_64_LENGTH_MODIFIER__ "x"
+
+#  define SCNdLEAST8    SCNd8
+#  define SCNiLEAST8    SCNi8
+#  define SCNoLEAST8    SCNo8
+#  define SCNuLEAST8    SCNu8
+#  define SCNxLEAST8    SCNx8
+
+#  define SCNdLEAST16   SCNd16
+#  define SCNiLEAST16   SCNi16
+#  define SCNoLEAST16   SCNo16
+#  define SCNuLEAST16   SCNu16
+#  define SCNxLEAST16   SCNx16
+
+#  define SCNdLEAST32   SCNd32
+#  define SCNiLEAST32   SCNi32
+#  define SCNoLEAST32   SCNo32
+#  define SCNuLEAST32   SCNu32
+#  define SCNxLEAST32   SCNx32
+
+#  define SCNdLEAST64   SCNd64
+#  define SCNiLEAST64   SCNi64
+#  define SCNoLEAST64   SCNo64
+#  define SCNuLEAST64   SCNu64
+#  define SCNxLEAST64   SCNx64
+
+#  define SCNdFAST8     SCNd8
+#  define SCNiFAST8     SCNi8
+#  define SCNoFAST8     SCNo8
+#  define SCNuFAST8     SCNu8
+#  define SCNxFAST8     SCNx8
+
+#  define SCNdFAST16    SCNd16
+#  define SCNiFAST16    SCNi16
+#  define SCNoFAST16    SCNo16
+#  define SCNuFAST16    SCNu16
+#  define SCNxFAST16    SCNx16
+
+#  define SCNdFAST32    SCNd32
+#  define SCNiFAST32    SCNi32
+#  define SCNoFAST32    SCNo32
+#  define SCNuFAST32    SCNu32
+#  define SCNxFAST32    SCNx32
+
+#  define SCNdFAST64    SCNd64
+#  define SCNiFAST64    SCNi64
+#  define SCNoFAST64    SCNo64
+#  define SCNuFAST64    SCNu64
+#  define SCNxFAST64    SCNx64
+
+#  define SCNdPTR       "ld"
+#  define SCNiPTR       "li"
+#  define SCNoPTR       "lo"
+#  define SCNuPTR       "lu"
+#  define SCNxPTR       "lx"
+
+#  define SCNdMAX       __SCN_MAX_LENGTH_MODIFIER__ "d"
+#  define SCNiMAX       __SCN_MAX_LENGTH_MODIFIER__ "i"
+#  define SCNoMAX       __SCN_MAX_LENGTH_MODIFIER__ "o"
+#  define SCNuMAX       __SCN_MAX_LENGTH_MODIFIER__ "u"
+#  define SCNxMAX       __SCN_MAX_LENGTH_MODIFIER__ "x"
+
+#endif /* if C++, then __STDC_FORMAT_MACROS enables the above macros */
+
 #if !defined(_INTTYPES_H_)
 #define _INTTYPES_H_
 
@@ -43,210 +262,6 @@
 #  endif
 #endif
 
-/* "C++ implementations should define these macros only when
- *  __STDC_FORMAT_MACROS is defined before <inttypes.h> is included."
- */
-#if (! defined(__cplusplus)) || defined(__STDC_FORMAT_MACROS)
-
-#  undef __PRI_8_LENGTH_MODIFIER__
-#  undef __PRI_64_LENGTH_MODIFIER__
-#  undef __SCN_64_LENGTH_MODIFIER__
-
-/* These could be "hh", "ll", and "ll" respectively, but that doesn't work on
-   10.2, and these do.  Note that there's no way to use scanf to scan a
-   decimal into a 'char' argument on 10.2, so "hh" is used unconditionally
-   and programs that use it won't work on Jaguar.  */
-#  define __PRI_8_LENGTH_MODIFIER__ ""  /* none */
-#  define __PRI_64_LENGTH_MODIFIER__ "q"
-#  define __SCN_64_LENGTH_MODIFIER__ "q"
-#  define __PRI_MAX_LENGTH_MODIFIER__ "j"
-#  define __SCN_MAX_LENGTH_MODIFIER__ "j"
-
-#  define PRId8         __PRI_8_LENGTH_MODIFIER__ "d"
-#  define PRIi8         __PRI_8_LENGTH_MODIFIER__ "i"
-#  define PRIo8         __PRI_8_LENGTH_MODIFIER__ "o"
-#  define PRIu8         __PRI_8_LENGTH_MODIFIER__ "u"
-#  define PRIx8         __PRI_8_LENGTH_MODIFIER__ "x"
-#  define PRIX8         __PRI_8_LENGTH_MODIFIER__ "X"
-
-#  define PRId16        "hd"
-#  define PRIi16        "hi"
-#  define PRIo16        "ho"
-#  define PRIu16        "hu"
-#  define PRIx16        "hx"
-#  define PRIX16        "hX"
-
-#  define PRId32        "d"
-#  define PRIi32        "i"
-#  define PRIo32        "o"
-#  define PRIu32        "u"
-#  define PRIx32        "x"
-#  define PRIX32        "X"
-
-#  define PRId64        __PRI_64_LENGTH_MODIFIER__ "d"
-#  define PRIi64        __PRI_64_LENGTH_MODIFIER__ "i"
-#  define PRIo64        __PRI_64_LENGTH_MODIFIER__ "o"
-#  define PRIu64        __PRI_64_LENGTH_MODIFIER__ "u"
-#  define PRIx64        __PRI_64_LENGTH_MODIFIER__ "x"
-#  define PRIX64        __PRI_64_LENGTH_MODIFIER__ "X"
-
-#  define PRIdLEAST8    PRId8
-#  define PRIiLEAST8    PRIi8
-#  define PRIoLEAST8    PRIo8
-#  define PRIuLEAST8    PRIu8
-#  define PRIxLEAST8    PRIx8
-#  define PRIXLEAST8    PRIX8
-
-#  define PRIdLEAST16   PRId16
-#  define PRIiLEAST16   PRIi16
-#  define PRIoLEAST16   PRIo16
-#  define PRIuLEAST16   PRIu16
-#  define PRIxLEAST16   PRIx16
-#  define PRIXLEAST16   PRIX16
-
-#  define PRIdLEAST32   PRId32
-#  define PRIiLEAST32   PRIi32
-#  define PRIoLEAST32   PRIo32
-#  define PRIuLEAST32   PRIu32
-#  define PRIxLEAST32   PRIx32
-#  define PRIXLEAST32   PRIX32
-
-#  define PRIdLEAST64   PRId64
-#  define PRIiLEAST64   PRIi64
-#  define PRIoLEAST64   PRIo64
-#  define PRIuLEAST64   PRIu64
-#  define PRIxLEAST64   PRIx64
-#  define PRIXLEAST64   PRIX64
-
-#  define PRIdFAST8     PRId8
-#  define PRIiFAST8     PRIi8
-#  define PRIoFAST8     PRIo8
-#  define PRIuFAST8     PRIu8
-#  define PRIxFAST8     PRIx8
-#  define PRIXFAST8     PRIX8
-
-#  define PRIdFAST16    PRId16
-#  define PRIiFAST16    PRIi16
-#  define PRIoFAST16    PRIo16
-#  define PRIuFAST16    PRIu16
-#  define PRIxFAST16    PRIx16
-#  define PRIXFAST16    PRIX16
-
-#  define PRIdFAST32    PRId32
-#  define PRIiFAST32    PRIi32
-#  define PRIoFAST32    PRIo32
-#  define PRIuFAST32    PRIu32
-#  define PRIxFAST32    PRIx32
-#  define PRIXFAST32    PRIX32
-
-#  define PRIdFAST64    PRId64
-#  define PRIiFAST64    PRIi64
-#  define PRIoFAST64    PRIo64
-#  define PRIuFAST64    PRIu64
-#  define PRIxFAST64    PRIx64
-#  define PRIXFAST64    PRIX64
-
-/* int32_t is 'int', but intptr_t is 'long'.  */
-#  define PRIdPTR       "ld"
-#  define PRIiPTR       "li"
-#  define PRIoPTR       "lo"
-#  define PRIuPTR       "lu"
-#  define PRIxPTR       "lx"
-#  define PRIXPTR       "lX"
-
-#  define PRIdMAX        __PRI_MAX_LENGTH_MODIFIER__ "d"
-#  define PRIiMAX        __PRI_MAX_LENGTH_MODIFIER__ "i"
-#  define PRIoMAX        __PRI_MAX_LENGTH_MODIFIER__ "o"
-#  define PRIuMAX        __PRI_MAX_LENGTH_MODIFIER__ "u"
-#  define PRIxMAX        __PRI_MAX_LENGTH_MODIFIER__ "x"
-#  define PRIXMAX        __PRI_MAX_LENGTH_MODIFIER__ "X"
-
-#  define SCNd8         "hhd"
-#  define SCNi8         "hhi"
-#  define SCNo8         "hho"
-#  define SCNu8         "hhu"
-#  define SCNx8         "hhx"
-
-#  define SCNd16        "hd"
-#  define SCNi16        "hi"
-#  define SCNo16        "ho"
-#  define SCNu16        "hu"
-#  define SCNx16        "hx"
-
-#  define SCNd32        "d"
-#  define SCNi32        "i"
-#  define SCNo32        "o"
-#  define SCNu32        "u"
-#  define SCNx32        "x"
-
-#  define SCNd64        __SCN_64_LENGTH_MODIFIER__ "d"
-#  define SCNi64        __SCN_64_LENGTH_MODIFIER__ "i"
-#  define SCNo64        __SCN_64_LENGTH_MODIFIER__ "o"
-#  define SCNu64        __SCN_64_LENGTH_MODIFIER__ "u"
-#  define SCNx64        __SCN_64_LENGTH_MODIFIER__ "x"
-
-#  define SCNdLEAST8    SCNd8
-#  define SCNiLEAST8    SCNi8
-#  define SCNoLEAST8    SCNo8
-#  define SCNuLEAST8    SCNu8
-#  define SCNxLEAST8    SCNx8
-
-#  define SCNdLEAST16   SCNd16
-#  define SCNiLEAST16   SCNi16
-#  define SCNoLEAST16   SCNo16
-#  define SCNuLEAST16   SCNu16
-#  define SCNxLEAST16   SCNx16
-
-#  define SCNdLEAST32   SCNd32
-#  define SCNiLEAST32   SCNi32
-#  define SCNoLEAST32   SCNo32
-#  define SCNuLEAST32   SCNu32
-#  define SCNxLEAST32   SCNx32
-
-#  define SCNdLEAST64   SCNd64
-#  define SCNiLEAST64   SCNi64
-#  define SCNoLEAST64   SCNo64
-#  define SCNuLEAST64   SCNu64
-#  define SCNxLEAST64   SCNx64
-
-#  define SCNdFAST8     SCNd8
-#  define SCNiFAST8     SCNi8
-#  define SCNoFAST8     SCNo8
-#  define SCNuFAST8     SCNu8
-#  define SCNxFAST8     SCNx8
-
-#  define SCNdFAST16    SCNd16
-#  define SCNiFAST16    SCNi16
-#  define SCNoFAST16    SCNo16
-#  define SCNuFAST16    SCNu16
-#  define SCNxFAST16    SCNx16
-
-#  define SCNdFAST32    SCNd32
-#  define SCNiFAST32    SCNi32
-#  define SCNoFAST32    SCNo32
-#  define SCNuFAST32    SCNu32
-#  define SCNxFAST32    SCNx32
-
-#  define SCNdFAST64    SCNd64
-#  define SCNiFAST64    SCNi64
-#  define SCNoFAST64    SCNo64
-#  define SCNuFAST64    SCNu64
-#  define SCNxFAST64    SCNx64
-
-#  define SCNdPTR       "ld"
-#  define SCNiPTR       "li"
-#  define SCNoPTR       "lo"
-#  define SCNuPTR       "lu"
-#  define SCNxPTR       "lx"
-
-#  define SCNdMAX       __SCN_MAX_LENGTH_MODIFIER__ "d"
-#  define SCNiMAX       __SCN_MAX_LENGTH_MODIFIER__ "i"
-#  define SCNoMAX       __SCN_MAX_LENGTH_MODIFIER__ "o"
-#  define SCNuMAX       __SCN_MAX_LENGTH_MODIFIER__ "u"
-#  define SCNxMAX       __SCN_MAX_LENGTH_MODIFIER__ "x"
-
-#endif /* if C++, then __STDC_FORMAT_MACROS enables the above macros */
-
 __BEGIN_DECLS
 
   /* 7.8.2.1 */
@@ -275,6 +290,11 @@
   extern intmax_t wcstoimax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
   extern uintmax_t wcstoumax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
 
+/* Poison the following routines if -fshort-wchar is set */
+#if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU
+#pragma GCC poison wcstoimax wcstoumax
+#endif
+
 __END_DECLS
 
 #ifdef _USE_EXTENDED_LOCALES_