* 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:
		| @@ -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> | ||||
|  | ||||
| 	* signal.cc (clock_nanosleep): Force return on signal rather than | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| /* 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. | ||||
|  | ||||
| @@ -15,211 +15,238 @@ details. */ | ||||
| #define __need_wchar_t | ||||
| #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 */ | ||||
|  | ||||
| #define PRId8 "d" | ||||
| #define PRId16 "d" | ||||
| #define PRId32 "d" | ||||
| #define PRId64 "lld" | ||||
| #define PRId64 __PRI64 "d" | ||||
|  | ||||
| #define PRIdLEAST8 "d" | ||||
| #define PRIdLEAST16 "d" | ||||
| #define PRIdLEAST32 "d" | ||||
| #define PRIdLEAST64 "lld" | ||||
| #define PRIdLEAST64 __PRI64 "d" | ||||
|  | ||||
| #define PRIdFAST8 "d" | ||||
| #define PRIdFAST16 "d" | ||||
| #define PRIdFAST32 "d" | ||||
| #define PRIdFAST64 "lld" | ||||
| #define PRIdFAST16 __PRIFAST "d" | ||||
| #define PRIdFAST32 __PRIFAST "d" | ||||
| #define PRIdFAST64 __PRI64 "d" | ||||
|  | ||||
| #define PRIdMAX "lld" | ||||
| #define PRIdPTR "d" | ||||
| #define PRIdMAX __PRI64 "d" | ||||
| #define PRIdPTR __PRIPTR "d" | ||||
|  | ||||
| #define PRIi8 "i" | ||||
| #define PRIi16 "i" | ||||
| #define PRIi32 "i" | ||||
| #define PRIi64 "lli" | ||||
| #define PRIi64 __PRI64 "i" | ||||
|  | ||||
| #define PRIiLEAST8 "i" | ||||
| #define PRIiLEAST16 "i" | ||||
| #define PRIiLEAST32 "i" | ||||
| #define PRIiLEAST64 "lli" | ||||
| #define PRIiLEAST64 __PRI64 "i" | ||||
|  | ||||
| #define PRIiFAST8 "i" | ||||
| #define PRIiFAST16 "i" | ||||
| #define PRIiFAST32 "i" | ||||
| #define PRIiFAST64 "lli" | ||||
| #define PRIiFAST16 __PRIFAST "i" | ||||
| #define PRIiFAST32 __PRIFAST "i" | ||||
| #define PRIiFAST64 __PRI64 "i" | ||||
|  | ||||
| #define PRIiMAX "lli" | ||||
| #define PRIiPTR "i" | ||||
| #define PRIiMAX __PRI64 "i" | ||||
| #define PRIiPTR __PRIPTR "i" | ||||
|  | ||||
| /* fprintf() macros for unsigned integers */ | ||||
|  | ||||
| #define PRIo8 "o" | ||||
| #define PRIo16 "o" | ||||
| #define PRIo32 "o" | ||||
| #define PRIo64 "llo" | ||||
| #define PRIo64 __PRI64 "o" | ||||
|  | ||||
| #define PRIoLEAST8 "o" | ||||
| #define PRIoLEAST16 "o" | ||||
| #define PRIoLEAST32 "o" | ||||
| #define PRIoLEAST64 "llo" | ||||
| #define PRIoLEAST64 __PRI64 "o" | ||||
|  | ||||
| #define PRIoFAST8 "o" | ||||
| #define PRIoFAST16 "o" | ||||
| #define PRIoFAST32 "o" | ||||
| #define PRIoFAST64 "llo" | ||||
| #define PRIoFAST16 __PRIFAST "o" | ||||
| #define PRIoFAST32 __PRIFAST "o" | ||||
| #define PRIoFAST64 __PRI64 "o" | ||||
|  | ||||
| #define PRIoMAX "llo" | ||||
| #define PRIoPTR "o" | ||||
| #define PRIoMAX __PRI64 "o" | ||||
| #define PRIoPTR __PRIPTR "o" | ||||
|  | ||||
| #define PRIu8 "u" | ||||
| #define PRIu16 "u" | ||||
| #define PRIu32 "u" | ||||
| #define PRIu64 "llu" | ||||
| #define PRIu64 __PRI64 "u" | ||||
|  | ||||
| #define PRIuLEAST8 "u" | ||||
| #define PRIuLEAST16 "u" | ||||
| #define PRIuLEAST32 "u" | ||||
| #define PRIuLEAST64 "llu" | ||||
| #define PRIuLEAST64 __PRI64 "u" | ||||
|  | ||||
| #define PRIuFAST8 "u" | ||||
| #define PRIuFAST16 "u" | ||||
| #define PRIuFAST32 "u" | ||||
| #define PRIuFAST64 "llu" | ||||
| #define PRIuFAST16 __PRIFAST "u" | ||||
| #define PRIuFAST32 __PRIFAST "u" | ||||
| #define PRIuFAST64 __PRI64 "u" | ||||
|  | ||||
| #define PRIuMAX "llu" | ||||
| #define PRIuPTR "u" | ||||
| #define PRIuMAX __PRI64 "u" | ||||
| #define PRIuPTR __PRIPTR "u" | ||||
|  | ||||
| #define PRIx8 "x" | ||||
| #define PRIx16 "x" | ||||
| #define PRIx32 "x" | ||||
| #define PRIx64 "llx" | ||||
| #define PRIx64 __PRI64 "x" | ||||
|  | ||||
| #define PRIxLEAST8 "x" | ||||
| #define PRIxLEAST16 "x" | ||||
| #define PRIxLEAST32 "x" | ||||
| #define PRIxLEAST64 "llx" | ||||
| #define PRIxLEAST64 __PRI64 "x" | ||||
|  | ||||
| #define PRIxFAST8 "x" | ||||
| #define PRIxFAST16 "x" | ||||
| #define PRIxFAST32 "x" | ||||
| #define PRIxFAST64 "llx" | ||||
| #define PRIxFAST16 __PRIFAST "x" | ||||
| #define PRIxFAST32 __PRIFAST "x" | ||||
| #define PRIxFAST64 __PRI64 "x" | ||||
|  | ||||
| #define PRIxMAX "llx" | ||||
| #define PRIxPTR "x" | ||||
| #define PRIxMAX __PRI64 "x" | ||||
| #define PRIxPTR __PRIPTR "x" | ||||
|  | ||||
| #define PRIX8 "X" | ||||
| #define PRIX16 "X" | ||||
| #define PRIX32 "X" | ||||
| #define PRIX64 "llX" | ||||
| #define PRIX64 __PRI64 "X" | ||||
|  | ||||
| #define PRIXLEAST8 "X" | ||||
| #define PRIXLEAST16 "X" | ||||
| #define PRIXLEAST32 "X" | ||||
| #define PRIXLEAST64 "llX" | ||||
| #define PRIXLEAST64 __PRI64 "X" | ||||
|  | ||||
| #define PRIXFAST8 "X" | ||||
| #define PRIXFAST16 "X" | ||||
| #define PRIXFAST32 "X" | ||||
| #define PRIXFAST64 "llX" | ||||
| #define PRIXFAST16 __PRIFAST "X" | ||||
| #define PRIXFAST32 __PRIFAST "X" | ||||
| #define PRIXFAST64 __PRI64 "X" | ||||
|  | ||||
| #define PRIXMAX "llX" | ||||
| #define PRIXPTR "X" | ||||
| #define PRIXMAX __PRI64 "X" | ||||
| #define PRIXPTR __PRIPTR "X" | ||||
|  | ||||
| /* 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 SCNd16 "hd" | ||||
| #define SCNd32 "d" | ||||
| #define SCNd64 "lld" | ||||
| #define SCNd64 __SCN64 "d" | ||||
|  | ||||
| #define SCNdLEAST8 "hhd" | ||||
| #define SCNdLEAST16 "hd" | ||||
| #define SCNdLEAST32 "d" | ||||
| #define SCNdLEAST64 "lld" | ||||
| #define SCNdLEAST64 __SCN64 "d" | ||||
|  | ||||
| #define SCNdFAST8 "hhd" | ||||
| #define SCNdFAST16 "d" | ||||
| #define SCNdFAST32 "d" | ||||
| #define SCNdFAST64 "lld" | ||||
| #define SCNdFAST16 __SCNFAST "d" | ||||
| #define SCNdFAST32 __SCNFAST "d" | ||||
| #define SCNdFAST64 __SCN64 "d" | ||||
|  | ||||
| #define SCNdMAX "lld" | ||||
| #define SCNdPTR "d" | ||||
| #define SCNdMAX __SCN64 "d" | ||||
| #define SCNdPTR __SCNPTR "d" | ||||
|  | ||||
| #define SCNi8 "hhi" | ||||
| #define SCNi16 "hi" | ||||
| #define SCNi32 "i" | ||||
| #define SCNi64 "lli" | ||||
| #define SCNi64 __SCN64 "i" | ||||
|  | ||||
| #define SCNiLEAST8 "hhi" | ||||
| #define SCNiLEAST16 "hi" | ||||
| #define SCNiLEAST32 "i" | ||||
| #define SCNiLEAST64 "lli" | ||||
| #define SCNiLEAST64 __SCN64 "i" | ||||
|  | ||||
| #define SCNiFAST8 "hhi" | ||||
| #define SCNiFAST16 "i" | ||||
| #define SCNiFAST32 "i" | ||||
| #define SCNiFAST64 "lli" | ||||
| #define SCNiFAST16 __SCNFAST "i" | ||||
| #define SCNiFAST32 __SCNFAST "i" | ||||
| #define SCNiFAST64 __SCN64 "i" | ||||
|  | ||||
| #define SCNiMAX "lli" | ||||
| #define SCNiPTR "i" | ||||
| #define SCNiMAX __SCN64 "i" | ||||
| #define SCNiPTR __SCNPTR "i" | ||||
|  | ||||
| /* fscanf() macros for unsigned integers */ | ||||
|  | ||||
| #define SCNo8 "hho" | ||||
| #define SCNo16 "ho" | ||||
| #define SCNo32 "o" | ||||
| #define SCNo64 "llo" | ||||
| #define SCNo64 __SCN64 "o" | ||||
|  | ||||
| #define SCNoLEAST8 "hho" | ||||
| #define SCNoLEAST16 "ho" | ||||
| #define SCNoLEAST32 "o" | ||||
| #define SCNoLEAST64 "llo" | ||||
| #define SCNoLEAST64 __SCN64 "o" | ||||
|  | ||||
| #define SCNoFAST8 "hho" | ||||
| #define SCNoFAST16 "o" | ||||
| #define SCNoFAST32 "o" | ||||
| #define SCNoFAST64 "llo" | ||||
| #define SCNoFAST16 __SCNFAST "o" | ||||
| #define SCNoFAST32 __SCNFAST "o" | ||||
| #define SCNoFAST64 __SCN64 "o" | ||||
|  | ||||
| #define SCNoMAX "llo" | ||||
| #define SCNoPTR "o" | ||||
| #define SCNoMAX __SCN64 "o" | ||||
| #define SCNoPTR __SCNPTR "o" | ||||
|  | ||||
| #define SCNu8 "hhu" | ||||
| #define SCNu16 "hu" | ||||
| #define SCNu32 "u" | ||||
| #define SCNu64 "llu" | ||||
| #define SCNu64 __SCN64 "u" | ||||
|  | ||||
| #define SCNuLEAST8 "hhu" | ||||
| #define SCNuLEAST16 "hu" | ||||
| #define SCNuLEAST32 "u" | ||||
| #define SCNuLEAST64 "llu" | ||||
| #define SCNuLEAST64 __SCN64 "u" | ||||
|  | ||||
| #define SCNuFAST8 "hhu" | ||||
| #define SCNuFAST16 "u" | ||||
| #define SCNuFAST32 "u" | ||||
| #define SCNuFAST64 "llu" | ||||
| #define SCNuFAST16 __SCNFAST "u" | ||||
| #define SCNuFAST32 __SCNFAST "u" | ||||
| #define SCNuFAST64 __SCN64 "u" | ||||
|  | ||||
| #define SCNuMAX "llu" | ||||
| #define SCNuPTR "u" | ||||
| #define SCNuMAX __SCN64 "u" | ||||
| #define SCNuPTR __SCNPTR "u" | ||||
|  | ||||
| #define SCNx8 "hhx" | ||||
| #define SCNx16 "hx" | ||||
| #define SCNx32 "x" | ||||
| #define SCNx64 "llx" | ||||
| #define SCNx64 __SCN64 "x" | ||||
|  | ||||
| #define SCNxLEAST8 "hhx" | ||||
| #define SCNxLEAST16 "hx" | ||||
| #define SCNxLEAST32 "x" | ||||
| #define SCNxLEAST64 "llx" | ||||
| #define SCNxLEAST64 __SCN64 "x" | ||||
|  | ||||
| #define SCNxFAST8 "hhx" | ||||
| #define SCNxFAST16 "x" | ||||
| #define SCNxFAST32 "x" | ||||
| #define SCNxFAST64 "llx" | ||||
| #define SCNxFAST16 __SCNFAST "x" | ||||
| #define SCNxFAST32 __SCNFAST "x" | ||||
| #define SCNxFAST64 __SCN64 "x" | ||||
|  | ||||
| #define SCNxMAX "llx" | ||||
| #define SCNxPTR "x" | ||||
| #define SCNxMAX __SCN64 "x" | ||||
| #define SCNxPTR __SCNPTR "x" | ||||
|  | ||||
| #endif /* !__cplusplus || __STDC_FORMAT_MACROS || __INSIDE_CYGWIN__ */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| /* 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. | ||||
|  | ||||
| @@ -18,8 +18,12 @@ details. */ | ||||
| typedef signed char int8_t; | ||||
| typedef short int16_t; | ||||
| typedef int int32_t; | ||||
| #ifdef __x86_64__ | ||||
| typedef long int64_t; | ||||
| #else | ||||
| typedef long long int64_t; | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| typedef unsigned char uint8_t; | ||||
| typedef unsigned short uint16_t; | ||||
| @@ -27,114 +31,190 @@ typedef unsigned short uint16_t; | ||||
| #define __uint32_t_defined | ||||
| typedef unsigned int uint32_t; | ||||
| #endif | ||||
| #ifdef __x86_64__ | ||||
| typedef unsigned long uint64_t; | ||||
| #else | ||||
| typedef unsigned long long uint64_t; | ||||
| #endif | ||||
|  | ||||
| /* Minimum-width integer types */ | ||||
|  | ||||
| typedef signed char int_least8_t; | ||||
| typedef short int_least16_t; | ||||
| typedef int int_least32_t; | ||||
| #ifdef __x86_64__ | ||||
| typedef long int_least64_t; | ||||
| #else | ||||
| typedef long long int_least64_t; | ||||
| #endif | ||||
|  | ||||
| typedef unsigned char uint_least8_t; | ||||
| typedef unsigned short uint_least16_t; | ||||
| typedef unsigned int uint_least32_t; | ||||
| #ifdef __x86_64__ | ||||
| typedef unsigned long uint_least64_t; | ||||
| #else | ||||
| typedef unsigned long long uint_least64_t; | ||||
| #endif | ||||
|  | ||||
| /* Fastest minimum-width integer types */ | ||||
|  | ||||
| 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_fast32_t; | ||||
| typedef long long int_fast64_t; | ||||
| #endif | ||||
|  | ||||
| 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_fast32_t; | ||||
| typedef unsigned long long uint_fast64_t; | ||||
| #endif | ||||
|  | ||||
| /* Integer types capable of holding object pointers */ | ||||
|  | ||||
| #ifndef __intptr_t_defined | ||||
| #define __intptr_t_defined | ||||
| #ifdef __x86_64__ | ||||
| typedef long intptr_t; | ||||
| #else | ||||
| typedef int intptr_t; | ||||
| #endif | ||||
| #endif | ||||
| #ifdef __x86_64__ | ||||
| typedef unsigned long uintptr_t; | ||||
| #else | ||||
| typedef unsigned int uintptr_t; | ||||
| #endif | ||||
|  | ||||
| /* Greatest-width integer types */ | ||||
|  | ||||
| #ifdef __x86_64__ | ||||
| typedef long intmax_t; | ||||
| typedef unsigned long uintmax_t; | ||||
| #else | ||||
| typedef long long intmax_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 */ | ||||
|  | ||||
| #define INT8_MIN (-128) | ||||
| #define INT16_MIN (-32768) | ||||
| #define INT32_MIN (-2147483647 - 1) | ||||
| #define INT64_MIN (-9223372036854775807LL - 1LL) | ||||
| #define INT64_MIN (-__I64(9223372036854775807) - 1) | ||||
|  | ||||
| #define INT8_MAX (127) | ||||
| #define INT16_MAX (32767) | ||||
| #define INT32_MAX (2147483647) | ||||
| #define INT64_MAX (9223372036854775807LL) | ||||
| #define INT64_MAX (__I64(9223372036854775807)) | ||||
|  | ||||
| #define UINT8_MAX (255) | ||||
| #define UINT16_MAX (65535) | ||||
| #define UINT32_MAX (4294967295U) | ||||
| #define UINT64_MAX (18446744073709551615ULL) | ||||
| #define UINT64_MAX (__U64(18446744073709551615)) | ||||
|  | ||||
| /* Limits of minimum-width integer types */ | ||||
|  | ||||
| #define INT_LEAST8_MIN (-128) | ||||
| #define INT_LEAST16_MIN (-32768) | ||||
| #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_LEAST16_MAX (32767) | ||||
| #define INT_LEAST32_MAX (2147483647) | ||||
| #define INT_LEAST64_MAX (9223372036854775807LL) | ||||
| #define INT_LEAST64_MAX (__I64(9223372036854775807)) | ||||
|  | ||||
| #define UINT_LEAST8_MAX (255) | ||||
| #define UINT_LEAST16_MAX (65535) | ||||
| #define UINT_LEAST32_MAX (4294967295U) | ||||
| #define UINT_LEAST64_MAX (18446744073709551615ULL) | ||||
| #define UINT_LEAST64_MAX (__U64(18446744073709551615)) | ||||
|  | ||||
| /* Limits of fastest minimum-width integer types */ | ||||
|  | ||||
| #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_FAST32_MIN (-2147483647 - 1) | ||||
| #define INT_FAST64_MIN (-9223372036854775807LL - 1LL) | ||||
| #endif | ||||
| #define INT_FAST64_MIN (-__I64(9223372036854775807) - 1) | ||||
|  | ||||
| #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_FAST32_MAX (2147483647) | ||||
| #define INT_FAST64_MAX (9223372036854775807LL) | ||||
| #endif | ||||
| #define INT_FAST64_MAX (__I64(9223372036854775807)) | ||||
|  | ||||
| #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_FAST32_MAX (4294967295U) | ||||
| #define UINT_FAST64_MAX (18446744073709551615ULL) | ||||
| #endif | ||||
| #define UINT_FAST64_MAX (__U64(18446744073709551615)) | ||||
|  | ||||
| /* 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_MAX (2147483647) | ||||
| #define UINTPTR_MAX (4294967295U) | ||||
| #endif | ||||
|  | ||||
| /* Limits of greatest-width integer types */ | ||||
|  | ||||
| #define INTMAX_MIN (-9223372036854775807LL - 1LL) | ||||
| #define INTMAX_MAX (9223372036854775807LL) | ||||
| #define UINTMAX_MAX (18446744073709551615ULL) | ||||
| #define INTMAX_MIN (-__I64(9223372036854775807) - 1) | ||||
| #define INTMAX_MAX (__I64(9223372036854775807)) | ||||
| #define UINTMAX_MAX (__U64(18446744073709551615)) | ||||
|  | ||||
| /* Limits of other integer types */ | ||||
|  | ||||
| #ifndef PTRDIFF_MIN | ||||
| #ifdef __x86_64__ | ||||
| #define PTRDIFF_MIN (-9223372036854775807L - 1) | ||||
| #define PTRDIFF_MAX (9223372036854775807L) | ||||
| #else | ||||
| #define PTRDIFF_MIN (-2147483647 - 1) | ||||
| #define PTRDIFF_MAX (2147483647) | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #ifndef SIG_ATOMIC_MIN | ||||
| #define SIG_ATOMIC_MIN (-2147483647 - 1) | ||||
| @@ -144,8 +224,12 @@ typedef unsigned long long uintmax_t; | ||||
| #endif | ||||
|  | ||||
| #ifndef SIZE_MAX | ||||
| #ifdef __x86_64__ | ||||
| #define SIZE_MAX (18446744073709551615UL) | ||||
| #else | ||||
| #define SIZE_MAX (4294967295U) | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #ifndef WCHAR_MIN | ||||
| #ifdef __WCHAR_MIN__ | ||||
| @@ -162,21 +246,43 @@ typedef unsigned long long uintmax_t; | ||||
| #define WINT_MAX (4294967295U) | ||||
| #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 */ | ||||
|  | ||||
| #define INT8_C(x) x | ||||
| #define INT16_C(x) x | ||||
| #define INT32_C(x) x | ||||
| #ifdef __x86_64__ | ||||
| #define INT64_C(x) x ## L | ||||
| #else | ||||
| #define INT64_C(x) x ## LL | ||||
| #endif | ||||
|  | ||||
| #define UINT8_C(x) x | ||||
| #define UINT16_C(x) x | ||||
| #define UINT32_C(x) x ## U | ||||
| #ifdef __x86_64__ | ||||
| #define UINT64_C(x) x ## UL | ||||
| #else | ||||
| #define UINT64_C(x) x ## ULL | ||||
| #endif | ||||
|  | ||||
| /* 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 UINTMAX_C(x) x ## ULL | ||||
| #endif | ||||
|  | ||||
| #endif /* !__cplusplus || __STDC_CONSTANT_MACROS || __INSIDE_CYGWIN__ */ | ||||
|  | ||||
| #endif /* _STDINT_H */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user