* include/inttypes.h: Add x86_64 target considerations throughout.

Define macros in C++ according to C99 requirements.
	* include/stdint.h: Ditto.
This commit is contained in:
Corinna Vinschen 2012-07-28 14:21:34 +00:00
parent 7ae7345dd6
commit a2b7f56971
3 changed files with 230 additions and 91 deletions

View File

@ -1,3 +1,9 @@
2012-07-28 Corinna Vinschen <corinna@vinschen.de>
* include/inttypes.h: Add x86_64 target considerations throughout.
Define macros in C++ according to C99 requirements.
* include/stdint.h: Ditto.
2012-07-25 Christopher Faylor <me.cygwin2012@cgf.cx> 2012-07-25 Christopher Faylor <me.cygwin2012@cgf.cx>
* signal.cc (clock_nanosleep): Force return on signal rather than * signal.cc (clock_nanosleep): Force return on signal rather than

View File

@ -1,6 +1,6 @@
/* inttypes.h - fixed size integer types /* inttypes.h - fixed size integer types
Copyright 2003, 2009, 2010 Red Hat, Inc. Copyright 2003, 2005, 2009, 2010, 2012 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -15,211 +15,238 @@ details. */
#define __need_wchar_t #define __need_wchar_t
#include <stddef.h> #include <stddef.h>
/* C99 requires that in C++ the following macros should be defined only
if requested. */
#if !defined (__cplusplus) || defined (__STDC_FORMAT_MACROS) \
|| defined (__INSIDE_CYGWIN__)
#ifdef __x86_64__
#define __PRI64 "l"
#define __PRIFAST "l"
#define __PRIPTR "l"
#else
#define __PRI64 "ll"
#define __PRIFAST
#define __PRIPTR
#endif
/* fprintf() macros for signed integers */ /* fprintf() macros for signed integers */
#define PRId8 "d" #define PRId8 "d"
#define PRId16 "d" #define PRId16 "d"
#define PRId32 "d" #define PRId32 "d"
#define PRId64 "lld" #define PRId64 __PRI64 "d"
#define PRIdLEAST8 "d" #define PRIdLEAST8 "d"
#define PRIdLEAST16 "d" #define PRIdLEAST16 "d"
#define PRIdLEAST32 "d" #define PRIdLEAST32 "d"
#define PRIdLEAST64 "lld" #define PRIdLEAST64 __PRI64 "d"
#define PRIdFAST8 "d" #define PRIdFAST8 "d"
#define PRIdFAST16 "d" #define PRIdFAST16 __PRIFAST "d"
#define PRIdFAST32 "d" #define PRIdFAST32 __PRIFAST "d"
#define PRIdFAST64 "lld" #define PRIdFAST64 __PRI64 "d"
#define PRIdMAX "lld" #define PRIdMAX __PRI64 "d"
#define PRIdPTR "d" #define PRIdPTR __PRIPTR "d"
#define PRIi8 "i" #define PRIi8 "i"
#define PRIi16 "i" #define PRIi16 "i"
#define PRIi32 "i" #define PRIi32 "i"
#define PRIi64 "lli" #define PRIi64 __PRI64 "i"
#define PRIiLEAST8 "i" #define PRIiLEAST8 "i"
#define PRIiLEAST16 "i" #define PRIiLEAST16 "i"
#define PRIiLEAST32 "i" #define PRIiLEAST32 "i"
#define PRIiLEAST64 "lli" #define PRIiLEAST64 __PRI64 "i"
#define PRIiFAST8 "i" #define PRIiFAST8 "i"
#define PRIiFAST16 "i" #define PRIiFAST16 __PRIFAST "i"
#define PRIiFAST32 "i" #define PRIiFAST32 __PRIFAST "i"
#define PRIiFAST64 "lli" #define PRIiFAST64 __PRI64 "i"
#define PRIiMAX "lli" #define PRIiMAX __PRI64 "i"
#define PRIiPTR "i" #define PRIiPTR __PRIPTR "i"
/* fprintf() macros for unsigned integers */ /* fprintf() macros for unsigned integers */
#define PRIo8 "o" #define PRIo8 "o"
#define PRIo16 "o" #define PRIo16 "o"
#define PRIo32 "o" #define PRIo32 "o"
#define PRIo64 "llo" #define PRIo64 __PRI64 "o"
#define PRIoLEAST8 "o" #define PRIoLEAST8 "o"
#define PRIoLEAST16 "o" #define PRIoLEAST16 "o"
#define PRIoLEAST32 "o" #define PRIoLEAST32 "o"
#define PRIoLEAST64 "llo" #define PRIoLEAST64 __PRI64 "o"
#define PRIoFAST8 "o" #define PRIoFAST8 "o"
#define PRIoFAST16 "o" #define PRIoFAST16 __PRIFAST "o"
#define PRIoFAST32 "o" #define PRIoFAST32 __PRIFAST "o"
#define PRIoFAST64 "llo" #define PRIoFAST64 __PRI64 "o"
#define PRIoMAX "llo" #define PRIoMAX __PRI64 "o"
#define PRIoPTR "o" #define PRIoPTR __PRIPTR "o"
#define PRIu8 "u" #define PRIu8 "u"
#define PRIu16 "u" #define PRIu16 "u"
#define PRIu32 "u" #define PRIu32 "u"
#define PRIu64 "llu" #define PRIu64 __PRI64 "u"
#define PRIuLEAST8 "u" #define PRIuLEAST8 "u"
#define PRIuLEAST16 "u" #define PRIuLEAST16 "u"
#define PRIuLEAST32 "u" #define PRIuLEAST32 "u"
#define PRIuLEAST64 "llu" #define PRIuLEAST64 __PRI64 "u"
#define PRIuFAST8 "u" #define PRIuFAST8 "u"
#define PRIuFAST16 "u" #define PRIuFAST16 __PRIFAST "u"
#define PRIuFAST32 "u" #define PRIuFAST32 __PRIFAST "u"
#define PRIuFAST64 "llu" #define PRIuFAST64 __PRI64 "u"
#define PRIuMAX "llu" #define PRIuMAX __PRI64 "u"
#define PRIuPTR "u" #define PRIuPTR __PRIPTR "u"
#define PRIx8 "x" #define PRIx8 "x"
#define PRIx16 "x" #define PRIx16 "x"
#define PRIx32 "x" #define PRIx32 "x"
#define PRIx64 "llx" #define PRIx64 __PRI64 "x"
#define PRIxLEAST8 "x" #define PRIxLEAST8 "x"
#define PRIxLEAST16 "x" #define PRIxLEAST16 "x"
#define PRIxLEAST32 "x" #define PRIxLEAST32 "x"
#define PRIxLEAST64 "llx" #define PRIxLEAST64 __PRI64 "x"
#define PRIxFAST8 "x" #define PRIxFAST8 "x"
#define PRIxFAST16 "x" #define PRIxFAST16 __PRIFAST "x"
#define PRIxFAST32 "x" #define PRIxFAST32 __PRIFAST "x"
#define PRIxFAST64 "llx" #define PRIxFAST64 __PRI64 "x"
#define PRIxMAX "llx" #define PRIxMAX __PRI64 "x"
#define PRIxPTR "x" #define PRIxPTR __PRIPTR "x"
#define PRIX8 "X" #define PRIX8 "X"
#define PRIX16 "X" #define PRIX16 "X"
#define PRIX32 "X" #define PRIX32 "X"
#define PRIX64 "llX" #define PRIX64 __PRI64 "X"
#define PRIXLEAST8 "X" #define PRIXLEAST8 "X"
#define PRIXLEAST16 "X" #define PRIXLEAST16 "X"
#define PRIXLEAST32 "X" #define PRIXLEAST32 "X"
#define PRIXLEAST64 "llX" #define PRIXLEAST64 __PRI64 "X"
#define PRIXFAST8 "X" #define PRIXFAST8 "X"
#define PRIXFAST16 "X" #define PRIXFAST16 __PRIFAST "X"
#define PRIXFAST32 "X" #define PRIXFAST32 __PRIFAST "X"
#define PRIXFAST64 "llX" #define PRIXFAST64 __PRI64 "X"
#define PRIXMAX "llX" #define PRIXMAX __PRI64 "X"
#define PRIXPTR "X" #define PRIXPTR __PRIPTR "X"
/* fscanf() macros for signed integers */ /* fscanf() macros for signed integers */
#ifdef __x86_64__
#define __SCN64 "l"
#define __SCNFAST "l"
#define __SCNPTR "l"
#else
#define __SCN64 "ll"
#define __SCNFAST
#define __SCNPTR
#endif
#define SCNd8 "hhd" #define SCNd8 "hhd"
#define SCNd16 "hd" #define SCNd16 "hd"
#define SCNd32 "d" #define SCNd32 "d"
#define SCNd64 "lld" #define SCNd64 __SCN64 "d"
#define SCNdLEAST8 "hhd" #define SCNdLEAST8 "hhd"
#define SCNdLEAST16 "hd" #define SCNdLEAST16 "hd"
#define SCNdLEAST32 "d" #define SCNdLEAST32 "d"
#define SCNdLEAST64 "lld" #define SCNdLEAST64 __SCN64 "d"
#define SCNdFAST8 "hhd" #define SCNdFAST8 "hhd"
#define SCNdFAST16 "d" #define SCNdFAST16 __SCNFAST "d"
#define SCNdFAST32 "d" #define SCNdFAST32 __SCNFAST "d"
#define SCNdFAST64 "lld" #define SCNdFAST64 __SCN64 "d"
#define SCNdMAX "lld" #define SCNdMAX __SCN64 "d"
#define SCNdPTR "d" #define SCNdPTR __SCNPTR "d"
#define SCNi8 "hhi" #define SCNi8 "hhi"
#define SCNi16 "hi" #define SCNi16 "hi"
#define SCNi32 "i" #define SCNi32 "i"
#define SCNi64 "lli" #define SCNi64 __SCN64 "i"
#define SCNiLEAST8 "hhi" #define SCNiLEAST8 "hhi"
#define SCNiLEAST16 "hi" #define SCNiLEAST16 "hi"
#define SCNiLEAST32 "i" #define SCNiLEAST32 "i"
#define SCNiLEAST64 "lli" #define SCNiLEAST64 __SCN64 "i"
#define SCNiFAST8 "hhi" #define SCNiFAST8 "hhi"
#define SCNiFAST16 "i" #define SCNiFAST16 __SCNFAST "i"
#define SCNiFAST32 "i" #define SCNiFAST32 __SCNFAST "i"
#define SCNiFAST64 "lli" #define SCNiFAST64 __SCN64 "i"
#define SCNiMAX "lli" #define SCNiMAX __SCN64 "i"
#define SCNiPTR "i" #define SCNiPTR __SCNPTR "i"
/* fscanf() macros for unsigned integers */ /* fscanf() macros for unsigned integers */
#define SCNo8 "hho" #define SCNo8 "hho"
#define SCNo16 "ho" #define SCNo16 "ho"
#define SCNo32 "o" #define SCNo32 "o"
#define SCNo64 "llo" #define SCNo64 __SCN64 "o"
#define SCNoLEAST8 "hho" #define SCNoLEAST8 "hho"
#define SCNoLEAST16 "ho" #define SCNoLEAST16 "ho"
#define SCNoLEAST32 "o" #define SCNoLEAST32 "o"
#define SCNoLEAST64 "llo" #define SCNoLEAST64 __SCN64 "o"
#define SCNoFAST8 "hho" #define SCNoFAST8 "hho"
#define SCNoFAST16 "o" #define SCNoFAST16 __SCNFAST "o"
#define SCNoFAST32 "o" #define SCNoFAST32 __SCNFAST "o"
#define SCNoFAST64 "llo" #define SCNoFAST64 __SCN64 "o"
#define SCNoMAX "llo" #define SCNoMAX __SCN64 "o"
#define SCNoPTR "o" #define SCNoPTR __SCNPTR "o"
#define SCNu8 "hhu" #define SCNu8 "hhu"
#define SCNu16 "hu" #define SCNu16 "hu"
#define SCNu32 "u" #define SCNu32 "u"
#define SCNu64 "llu" #define SCNu64 __SCN64 "u"
#define SCNuLEAST8 "hhu" #define SCNuLEAST8 "hhu"
#define SCNuLEAST16 "hu" #define SCNuLEAST16 "hu"
#define SCNuLEAST32 "u" #define SCNuLEAST32 "u"
#define SCNuLEAST64 "llu" #define SCNuLEAST64 __SCN64 "u"
#define SCNuFAST8 "hhu" #define SCNuFAST8 "hhu"
#define SCNuFAST16 "u" #define SCNuFAST16 __SCNFAST "u"
#define SCNuFAST32 "u" #define SCNuFAST32 __SCNFAST "u"
#define SCNuFAST64 "llu" #define SCNuFAST64 __SCN64 "u"
#define SCNuMAX "llu" #define SCNuMAX __SCN64 "u"
#define SCNuPTR "u" #define SCNuPTR __SCNPTR "u"
#define SCNx8 "hhx" #define SCNx8 "hhx"
#define SCNx16 "hx" #define SCNx16 "hx"
#define SCNx32 "x" #define SCNx32 "x"
#define SCNx64 "llx" #define SCNx64 __SCN64 "x"
#define SCNxLEAST8 "hhx" #define SCNxLEAST8 "hhx"
#define SCNxLEAST16 "hx" #define SCNxLEAST16 "hx"
#define SCNxLEAST32 "x" #define SCNxLEAST32 "x"
#define SCNxLEAST64 "llx" #define SCNxLEAST64 __SCN64 "x"
#define SCNxFAST8 "hhx" #define SCNxFAST8 "hhx"
#define SCNxFAST16 "x" #define SCNxFAST16 __SCNFAST "x"
#define SCNxFAST32 "x" #define SCNxFAST32 __SCNFAST "x"
#define SCNxFAST64 "llx" #define SCNxFAST64 __SCN64 "x"
#define SCNxMAX "llx" #define SCNxMAX __SCN64 "x"
#define SCNxPTR "x" #define SCNxPTR __SCNPTR "x"
#endif /* !__cplusplus || __STDC_FORMAT_MACROS || __INSIDE_CYGWIN__ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -1,6 +1,6 @@
/* stdint.h - integer types /* stdint.h - integer types
Copyright 2003, 2006, 2007 Red Hat, Inc. Copyright 2003, 2006, 2007, 2008, 2009, 2010, 2012 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -18,8 +18,12 @@ details. */
typedef signed char int8_t; typedef signed char int8_t;
typedef short int16_t; typedef short int16_t;
typedef int int32_t; typedef int int32_t;
#ifdef __x86_64__
typedef long int64_t;
#else
typedef long long int64_t; typedef long long int64_t;
#endif #endif
#endif
typedef unsigned char uint8_t; typedef unsigned char uint8_t;
typedef unsigned short uint16_t; typedef unsigned short uint16_t;
@ -27,114 +31,190 @@ typedef unsigned short uint16_t;
#define __uint32_t_defined #define __uint32_t_defined
typedef unsigned int uint32_t; typedef unsigned int uint32_t;
#endif #endif
#ifdef __x86_64__
typedef unsigned long uint64_t;
#else
typedef unsigned long long uint64_t; typedef unsigned long long uint64_t;
#endif
/* Minimum-width integer types */ /* Minimum-width integer types */
typedef signed char int_least8_t; typedef signed char int_least8_t;
typedef short int_least16_t; typedef short int_least16_t;
typedef int int_least32_t; typedef int int_least32_t;
#ifdef __x86_64__
typedef long int_least64_t;
#else
typedef long long int_least64_t; typedef long long int_least64_t;
#endif
typedef unsigned char uint_least8_t; typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t; typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t; typedef unsigned int uint_least32_t;
#ifdef __x86_64__
typedef unsigned long uint_least64_t;
#else
typedef unsigned long long uint_least64_t; typedef unsigned long long uint_least64_t;
#endif
/* Fastest minimum-width integer types */ /* Fastest minimum-width integer types */
typedef signed char int_fast8_t; typedef signed char int_fast8_t;
#ifdef __x86_64__
typedef long int_fast16_t;
typedef long int_fast32_t;
typedef long int_fast64_t;
#else
typedef int int_fast16_t; typedef int int_fast16_t;
typedef int int_fast32_t; typedef int int_fast32_t;
typedef long long int_fast64_t; typedef long long int_fast64_t;
#endif
typedef unsigned char uint_fast8_t; typedef unsigned char uint_fast8_t;
#ifdef __x86_64__
typedef unsigned long uint_fast16_t;
typedef unsigned long uint_fast32_t;
typedef unsigned long uint_fast64_t;
#else
typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t; typedef unsigned int uint_fast32_t;
typedef unsigned long long uint_fast64_t; typedef unsigned long long uint_fast64_t;
#endif
/* Integer types capable of holding object pointers */ /* Integer types capable of holding object pointers */
#ifndef __intptr_t_defined #ifndef __intptr_t_defined
#define __intptr_t_defined #define __intptr_t_defined
#ifdef __x86_64__
typedef long intptr_t;
#else
typedef int intptr_t; typedef int intptr_t;
#endif #endif
#endif
#ifdef __x86_64__
typedef unsigned long uintptr_t;
#else
typedef unsigned int uintptr_t; typedef unsigned int uintptr_t;
#endif
/* Greatest-width integer types */ /* Greatest-width integer types */
#ifdef __x86_64__
typedef long intmax_t;
typedef unsigned long uintmax_t;
#else
typedef long long intmax_t; typedef long long intmax_t;
typedef unsigned long long uintmax_t; typedef unsigned long long uintmax_t;
#endif
/* C99 requires that in C++ the following macros should be defined only
if requested. */
#if !defined (__cplusplus) || defined (__STDC_LIMIT_MACROS) \
|| defined (__INSIDE_CYGWIN__)
#if __x86_64__
# define __I64(n) n ## L
# define __U64(n) n ## UL
#else
# define __I64(n) n ## LL
# define __U64(n) n ## ULL
#endif
/* Limits of exact-width integer types */ /* Limits of exact-width integer types */
#define INT8_MIN (-128) #define INT8_MIN (-128)
#define INT16_MIN (-32768) #define INT16_MIN (-32768)
#define INT32_MIN (-2147483647 - 1) #define INT32_MIN (-2147483647 - 1)
#define INT64_MIN (-9223372036854775807LL - 1LL) #define INT64_MIN (-__I64(9223372036854775807) - 1)
#define INT8_MAX (127) #define INT8_MAX (127)
#define INT16_MAX (32767) #define INT16_MAX (32767)
#define INT32_MAX (2147483647) #define INT32_MAX (2147483647)
#define INT64_MAX (9223372036854775807LL) #define INT64_MAX (__I64(9223372036854775807))
#define UINT8_MAX (255) #define UINT8_MAX (255)
#define UINT16_MAX (65535) #define UINT16_MAX (65535)
#define UINT32_MAX (4294967295U) #define UINT32_MAX (4294967295U)
#define UINT64_MAX (18446744073709551615ULL) #define UINT64_MAX (__U64(18446744073709551615))
/* Limits of minimum-width integer types */ /* Limits of minimum-width integer types */
#define INT_LEAST8_MIN (-128) #define INT_LEAST8_MIN (-128)
#define INT_LEAST16_MIN (-32768) #define INT_LEAST16_MIN (-32768)
#define INT_LEAST32_MIN (-2147483647 - 1) #define INT_LEAST32_MIN (-2147483647 - 1)
#define INT_LEAST64_MIN (-9223372036854775807LL - 1LL) #define INT_LEAST64_MIN (-__I64(9223372036854775807) - 1)
#define INT_LEAST8_MAX (127) #define INT_LEAST8_MAX (127)
#define INT_LEAST16_MAX (32767) #define INT_LEAST16_MAX (32767)
#define INT_LEAST32_MAX (2147483647) #define INT_LEAST32_MAX (2147483647)
#define INT_LEAST64_MAX (9223372036854775807LL) #define INT_LEAST64_MAX (__I64(9223372036854775807))
#define UINT_LEAST8_MAX (255) #define UINT_LEAST8_MAX (255)
#define UINT_LEAST16_MAX (65535) #define UINT_LEAST16_MAX (65535)
#define UINT_LEAST32_MAX (4294967295U) #define UINT_LEAST32_MAX (4294967295U)
#define UINT_LEAST64_MAX (18446744073709551615ULL) #define UINT_LEAST64_MAX (__U64(18446744073709551615))
/* Limits of fastest minimum-width integer types */ /* Limits of fastest minimum-width integer types */
#define INT_FAST8_MIN (-128) #define INT_FAST8_MIN (-128)
#ifdef __x86_64__
#define INT_FAST16_MIN (-__I64(9223372036854775807) - 1)
#define INT_FAST32_MIN (-__I64(9223372036854775807) - 1)
#else
#define INT_FAST16_MIN (-2147483647 - 1) #define INT_FAST16_MIN (-2147483647 - 1)
#define INT_FAST32_MIN (-2147483647 - 1) #define INT_FAST32_MIN (-2147483647 - 1)
#define INT_FAST64_MIN (-9223372036854775807LL - 1LL) #endif
#define INT_FAST64_MIN (-__I64(9223372036854775807) - 1)
#define INT_FAST8_MAX (127) #define INT_FAST8_MAX (127)
#ifdef __x86_64__
#define INT_FAST16_MAX (__I64(9223372036854775807))
#define INT_FAST32_MAX (__I64(9223372036854775807))
#else
#define INT_FAST16_MAX (2147483647) #define INT_FAST16_MAX (2147483647)
#define INT_FAST32_MAX (2147483647) #define INT_FAST32_MAX (2147483647)
#define INT_FAST64_MAX (9223372036854775807LL) #endif
#define INT_FAST64_MAX (__I64(9223372036854775807))
#define UINT_FAST8_MAX (255) #define UINT_FAST8_MAX (255)
#ifdef __x86_64__
#define UINT_FAST16_MAX (__U64(18446744073709551615))
#define UINT_FAST32_MAX (__U64(18446744073709551615))
#else
#define UINT_FAST16_MAX (4294967295U) #define UINT_FAST16_MAX (4294967295U)
#define UINT_FAST32_MAX (4294967295U) #define UINT_FAST32_MAX (4294967295U)
#define UINT_FAST64_MAX (18446744073709551615ULL) #endif
#define UINT_FAST64_MAX (__U64(18446744073709551615))
/* Limits of integer types capable of holding object pointers */ /* Limits of integer types capable of holding object pointers */
#ifdef __x86_64__
#define INTPTR_MIN (-__I64(9223372036854775807) - 1)
#define INTPTR_MAX (__I64(9223372036854775807)
#define UINTPTR_MAX (__U64(18446744073709551615))
#else
#define INTPTR_MIN (-2147483647 - 1) #define INTPTR_MIN (-2147483647 - 1)
#define INTPTR_MAX (2147483647) #define INTPTR_MAX (2147483647)
#define UINTPTR_MAX (4294967295U) #define UINTPTR_MAX (4294967295U)
#endif
/* Limits of greatest-width integer types */ /* Limits of greatest-width integer types */
#define INTMAX_MIN (-9223372036854775807LL - 1LL) #define INTMAX_MIN (-__I64(9223372036854775807) - 1)
#define INTMAX_MAX (9223372036854775807LL) #define INTMAX_MAX (__I64(9223372036854775807))
#define UINTMAX_MAX (18446744073709551615ULL) #define UINTMAX_MAX (__U64(18446744073709551615))
/* Limits of other integer types */ /* Limits of other integer types */
#ifndef PTRDIFF_MIN #ifndef PTRDIFF_MIN
#ifdef __x86_64__
#define PTRDIFF_MIN (-9223372036854775807L - 1)
#define PTRDIFF_MAX (9223372036854775807L)
#else
#define PTRDIFF_MIN (-2147483647 - 1) #define PTRDIFF_MIN (-2147483647 - 1)
#define PTRDIFF_MAX (2147483647) #define PTRDIFF_MAX (2147483647)
#endif #endif
#endif
#ifndef SIG_ATOMIC_MIN #ifndef SIG_ATOMIC_MIN
#define SIG_ATOMIC_MIN (-2147483647 - 1) #define SIG_ATOMIC_MIN (-2147483647 - 1)
@ -144,8 +224,12 @@ typedef unsigned long long uintmax_t;
#endif #endif
#ifndef SIZE_MAX #ifndef SIZE_MAX
#ifdef __x86_64__
#define SIZE_MAX (18446744073709551615UL)
#else
#define SIZE_MAX (4294967295U) #define SIZE_MAX (4294967295U)
#endif #endif
#endif
#ifndef WCHAR_MIN #ifndef WCHAR_MIN
#ifdef __WCHAR_MIN__ #ifdef __WCHAR_MIN__
@ -162,21 +246,43 @@ typedef unsigned long long uintmax_t;
#define WINT_MAX (4294967295U) #define WINT_MAX (4294967295U)
#endif #endif
#endif /* !__cplusplus || __STDC_LIMIT_MACROS || __INSIDE_CYGWIN__ */
/* C99 requires that in C++ the following macros should be defined only
if requested. */
#if !defined (__cplusplus) || defined (__STDC_CONSTANT_MACROS) \
|| defined (__INSIDE_CYGWIN__)
/* Macros for minimum-width integer constant expressions */ /* Macros for minimum-width integer constant expressions */
#define INT8_C(x) x #define INT8_C(x) x
#define INT16_C(x) x #define INT16_C(x) x
#define INT32_C(x) x #define INT32_C(x) x
#ifdef __x86_64__
#define INT64_C(x) x ## L
#else
#define INT64_C(x) x ## LL #define INT64_C(x) x ## LL
#endif
#define UINT8_C(x) x #define UINT8_C(x) x
#define UINT16_C(x) x #define UINT16_C(x) x
#define UINT32_C(x) x ## U #define UINT32_C(x) x ## U
#ifdef __x86_64__
#define UINT64_C(x) x ## UL
#else
#define UINT64_C(x) x ## ULL #define UINT64_C(x) x ## ULL
#endif
/* Macros for greatest-width integer constant expressions */ /* Macros for greatest-width integer constant expressions */
#ifdef __x86_64__
#define INTMAX_C(x) x ## L
#define UINTMAX_C(x) x ## UL
#else
#define INTMAX_C(x) x ## LL #define INTMAX_C(x) x ## LL
#define UINTMAX_C(x) x ## ULL #define UINTMAX_C(x) x ## ULL
#endif
#endif /* !__cplusplus || __STDC_CONSTANT_MACROS || __INSIDE_CYGWIN__ */
#endif /* _STDINT_H */ #endif /* _STDINT_H */