On mixed 32/64 bit architectures (mips, powerpc) use __LP64__ rather than
architecture macros (__mips_n64, __powerpc64__) when 64 bit types (and corresponding macros) are different from 32 bit. [1] Correct the type of INT64_MIN, INT64_MAX and UINT64_MAX. Define (U)INTMAX_C as an alias for (U)INT64_C matching the type definition for (u)intmax_t. Do this on all architectures for consistency. Suggested by: bde [1] Approved by: kib (mentor)
This commit is contained in:
parent
d942996baf
commit
a56e818f29
@ -52,8 +52,8 @@
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## UL)
|
||||
|
||||
#define INTMAX_C(c) (c ## L)
|
||||
#define UINTMAX_C(c) (c ## UL)
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
|
@ -45,8 +45,8 @@
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## ULL)
|
||||
|
||||
#define INTMAX_C(c) (c ## LL)
|
||||
#define UINTMAX_C(c) (c ## ULL)
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
|
@ -52,8 +52,8 @@
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## ULL)
|
||||
|
||||
#define INTMAX_C(c) (c ## LL)
|
||||
#define UINTMAX_C(c) (c ## ULL)
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
|
@ -45,8 +45,8 @@
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## UL)
|
||||
|
||||
#define INTMAX_C(c) (c ## L)
|
||||
#define UINTMAX_C(c) (c ## UL)
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
* Macros for format specifiers.
|
||||
*/
|
||||
|
||||
#if defined(__mips_n64)
|
||||
#ifdef __LP64__
|
||||
#define PRI64 "l"
|
||||
#else
|
||||
#define PRI64 "ll"
|
||||
|
@ -46,28 +46,21 @@
|
||||
#define INT8_C(c) (c)
|
||||
#define INT16_C(c) (c)
|
||||
#define INT32_C(c) (c)
|
||||
#ifdef __mips_n64
|
||||
#define INT64_C(c) (c ## L)
|
||||
#else
|
||||
#define INT64_C(c) (c ## LL)
|
||||
#endif
|
||||
|
||||
#define UINT8_C(c) (c)
|
||||
#define UINT16_C(c) (c)
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#ifdef __mips_n64
|
||||
|
||||
#ifdef __LP64__
|
||||
#define INT64_C(c) (c ## L)
|
||||
#define UINT64_C(c) (c ## UL)
|
||||
#else
|
||||
#define INT64_C(c) (c ## LL)
|
||||
#define UINT64_C(c) (c ## ULL)
|
||||
#endif
|
||||
|
||||
#ifdef __mips_n64
|
||||
#define INTMAX_C(c) (c ## L)
|
||||
#define UINTMAX_C(c) (c ## UL)
|
||||
#else
|
||||
#define INTMAX_C(c) (c ## LL)
|
||||
#define UINTMAX_C(c) (c ## ULL)
|
||||
#endif
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
@ -81,19 +74,19 @@
|
||||
#define INT8_MIN (-0x7f-1)
|
||||
#define INT16_MIN (-0x7fff-1)
|
||||
#define INT32_MIN (-0x7fffffff-1)
|
||||
#define INT64_MIN (-INTMAX_C(0x7fffffffffffffff)-1)
|
||||
#define INT64_MIN (-INT64_C(0x7fffffffffffffff)-1)
|
||||
|
||||
/* Maximum values of exact-width signed integer types. */
|
||||
#define INT8_MAX 0x7f
|
||||
#define INT16_MAX 0x7fff
|
||||
#define INT32_MAX 0x7fffffff
|
||||
#define INT64_MAX INTMAX_C(0x7fffffffffffffff)
|
||||
#define INT64_MAX INT64_C(0x7fffffffffffffff)
|
||||
|
||||
/* Maximum values of exact-width unsigned integer types. */
|
||||
#define UINT8_MAX 0xff
|
||||
#define UINT16_MAX 0xffff
|
||||
#define UINT32_MAX 0xffffffffU
|
||||
#define UINT64_MAX UINTMAX_C(0xffffffffffffffff)
|
||||
#define UINT32_MAX 0xffffffff
|
||||
#define UINT64_MAX UINT64_C(0xffffffffffffffff)
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
@ -143,7 +136,7 @@
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
*/
|
||||
#ifdef __mips_n64
|
||||
#ifdef __LP64__
|
||||
#define INTPTR_MIN INT64_MIN
|
||||
#define INTPTR_MAX INT64_MAX
|
||||
#define UINTPTR_MAX UINT64_MAX
|
||||
@ -165,26 +158,26 @@
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.3 Limits of other integer types
|
||||
*/
|
||||
#ifdef __LP64__
|
||||
/* Limits of ptrdiff_t. */
|
||||
#ifdef __mips_n64
|
||||
#define PTRDIFF_MIN INT64_MIN
|
||||
#define PTRDIFF_MAX INT64_MAX
|
||||
|
||||
/* Limit of size_t. */
|
||||
#define SIZE_MAX UINT64_MAX
|
||||
#else
|
||||
/* Limits of ptrdiff_t. */
|
||||
#define PTRDIFF_MIN INT32_MIN
|
||||
#define PTRDIFF_MAX INT32_MAX
|
||||
|
||||
/* Limit of size_t. */
|
||||
#define SIZE_MAX UINT32_MAX
|
||||
#endif
|
||||
|
||||
/* Limits of sig_atomic_t. */
|
||||
#define SIG_ATOMIC_MIN INT32_MIN
|
||||
#define SIG_ATOMIC_MAX INT32_MAX
|
||||
|
||||
/* Limit of size_t. */
|
||||
#ifdef __mips_n64
|
||||
#define SIZE_MAX UINT64_MAX
|
||||
#else
|
||||
#define SIZE_MAX UINT32_MAX
|
||||
#endif
|
||||
|
||||
#ifndef WCHAR_MIN /* Also possibly defined in <wchar.h> */
|
||||
/* Limits of wchar_t. */
|
||||
#define WCHAR_MIN INT32_MIN
|
||||
|
@ -53,7 +53,7 @@ typedef short __int16_t;
|
||||
typedef unsigned short __uint16_t;
|
||||
typedef int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#ifdef __mips_n64
|
||||
#ifdef __LP64__
|
||||
typedef long __int64_t;
|
||||
typedef unsigned long __uint64_t;
|
||||
#else
|
||||
@ -74,17 +74,14 @@ typedef unsigned long long __uint64_t;
|
||||
*/
|
||||
typedef __int32_t __clock_t; /* clock()... */
|
||||
typedef unsigned int __cpumask_t;
|
||||
#ifdef __mips_n64
|
||||
typedef __int64_t __critical_t;
|
||||
#else
|
||||
typedef __int32_t __critical_t;
|
||||
#endif
|
||||
typedef double __double_t;
|
||||
typedef double __float_t;
|
||||
#ifdef __mips_n64
|
||||
#ifdef __LP64__
|
||||
typedef __int64_t __critical_t;
|
||||
typedef __int64_t __intfptr_t;
|
||||
typedef __int64_t __intptr_t;
|
||||
#else
|
||||
typedef __int32_t __critical_t;
|
||||
typedef __int32_t __intfptr_t;
|
||||
typedef __int32_t __intptr_t;
|
||||
#endif
|
||||
@ -97,14 +94,14 @@ typedef __int8_t __int_least8_t;
|
||||
typedef __int16_t __int_least16_t;
|
||||
typedef __int32_t __int_least32_t;
|
||||
typedef __int64_t __int_least64_t;
|
||||
#if defined(__mips_n64) || defined(__mips_n32)
|
||||
#if defined(__LP64__) || defined(__mips_n32)
|
||||
typedef __int64_t __register_t;
|
||||
typedef __int64_t f_register_t;
|
||||
#else
|
||||
typedef __int32_t __register_t;
|
||||
typedef __int32_t f_register_t;
|
||||
#endif
|
||||
#ifdef __mips_n64
|
||||
#ifdef __LP64__
|
||||
typedef __int64_t __ptrdiff_t;
|
||||
typedef __int64_t __segsz_t;
|
||||
typedef __uint64_t __size_t;
|
||||
@ -129,12 +126,12 @@ typedef __uint8_t __uint_least8_t;
|
||||
typedef __uint16_t __uint_least16_t;
|
||||
typedef __uint32_t __uint_least32_t;
|
||||
typedef __uint64_t __uint_least64_t;
|
||||
#if defined(__mips_n64) || defined(__mips_n32)
|
||||
#if defined(__LP64__) || defined(__mips_n32)
|
||||
typedef __uint64_t __u_register_t;
|
||||
#else
|
||||
typedef __uint32_t __u_register_t;
|
||||
#endif
|
||||
#if defined(__mips_n64)
|
||||
#ifdef __LP64__
|
||||
typedef __uint64_t __vm_offset_t;
|
||||
typedef __uint64_t __vm_paddr_t;
|
||||
typedef __uint64_t __vm_size_t;
|
||||
|
@ -37,7 +37,7 @@
|
||||
* Macros for format specifiers.
|
||||
*/
|
||||
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
#define PRI64 "l"
|
||||
#define PRIreg "l"
|
||||
#else
|
||||
|
@ -73,7 +73,7 @@
|
||||
#define __LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */
|
||||
#define __LLONG_MIN (-0x7fffffffffffffffLL - 1) /* min for a long long */
|
||||
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
#define __SSIZE_MAX __LONG_MAX /* max value for a ssize_t */
|
||||
#define __SIZE_T_MAX __ULONG_MAX /* max value for a size_t */
|
||||
#else
|
||||
|
@ -50,18 +50,17 @@
|
||||
#define UINT16_C(c) (c)
|
||||
#define UINT32_C(c) (c ## U)
|
||||
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
#define INT64_C(c) (c ## L)
|
||||
#define UINT64_C(c) (c ## UL)
|
||||
#define INTMAX_C(c) (c ## L)
|
||||
#define UINTMAX_C(c) (c ## UL)
|
||||
#else
|
||||
#define INT64_C(c) (c ## LL)
|
||||
#define UINT64_C(c) (c ## ULL)
|
||||
#define INTMAX_C(c) (c ## LL)
|
||||
#define UINTMAX_C(c) (c ## ULL)
|
||||
#endif
|
||||
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
|
||||
@ -74,27 +73,19 @@
|
||||
#define INT8_MIN (-0x7f-1)
|
||||
#define INT16_MIN (-0x7fff-1)
|
||||
#define INT32_MIN (-0x7fffffff-1)
|
||||
#define INT64_MIN (-0x7fffffffffffffffLL-1)
|
||||
#define INT64_MIN (-INT64_C(0x7fffffffffffffff)-1)
|
||||
|
||||
/* Maximum values of exact-width signed integer types. */
|
||||
#define INT8_MAX 0x7f
|
||||
#define INT16_MAX 0x7fff
|
||||
#define INT32_MAX 0x7fffffff
|
||||
#ifdef __powerpc64__
|
||||
#define INT64_MAX 0x7fffffffffffffffL
|
||||
#else
|
||||
#define INT64_MAX 0x7fffffffffffffffLL
|
||||
#endif
|
||||
#define INT64_MAX INT64_C(0x7fffffffffffffff)
|
||||
|
||||
/* Maximum values of exact-width unsigned integer types. */
|
||||
#define UINT8_MAX 0xff
|
||||
#define UINT16_MAX 0xffff
|
||||
#define UINT32_MAX 0xffffffffU
|
||||
#ifdef __powerpc64__
|
||||
#define UINT64_MAX 0xffffffffffffffffUL
|
||||
#else
|
||||
#define UINT64_MAX 0xffffffffffffffffULL
|
||||
#endif
|
||||
#define UINT32_MAX 0xffffffff
|
||||
#define UINT64_MAX UINT64_C(0xffffffffffffffff)
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
@ -144,7 +135,7 @@
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
*/
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
#define INTPTR_MIN INT64_MIN
|
||||
#define INTPTR_MAX INT64_MAX
|
||||
#define UINTPTR_MAX UINT64_MAX
|
||||
@ -166,7 +157,7 @@
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.3 Limits of other integer types
|
||||
*/
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
/* Limits of ptrdiff_t. */
|
||||
#define PTRDIFF_MIN INT64_MIN
|
||||
#define PTRDIFF_MAX INT64_MAX
|
||||
|
@ -52,7 +52,7 @@ typedef short __int16_t;
|
||||
typedef unsigned short __uint16_t;
|
||||
typedef int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
typedef long __int64_t;
|
||||
typedef unsigned long __uint64_t;
|
||||
#else
|
||||
@ -75,7 +75,7 @@ typedef __uint32_t __clock_t; /* clock()... */
|
||||
typedef unsigned int __cpumask_t;
|
||||
typedef double __double_t;
|
||||
typedef double __float_t;
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
typedef __int64_t __critical_t;
|
||||
typedef __int64_t __intfptr_t;
|
||||
typedef __int64_t __intptr_t;
|
||||
@ -93,7 +93,7 @@ typedef __int8_t __int_least8_t;
|
||||
typedef __int16_t __int_least16_t;
|
||||
typedef __int32_t __int_least32_t;
|
||||
typedef __int64_t __int_least64_t;
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
typedef __int64_t __ptrdiff_t; /* ptr1 - ptr2 */
|
||||
typedef __int64_t __register_t;
|
||||
typedef __int64_t __segsz_t; /* segment size (in pages) */
|
||||
@ -121,7 +121,7 @@ typedef __uint8_t __uint_least8_t;
|
||||
typedef __uint16_t __uint_least16_t;
|
||||
typedef __uint32_t __uint_least32_t;
|
||||
typedef __uint64_t __uint_least64_t;
|
||||
#ifdef __powerpc64__
|
||||
#ifdef __LP64__
|
||||
typedef __uint64_t __u_register_t;
|
||||
typedef __uint64_t __vm_offset_t;
|
||||
typedef __uint64_t __vm_paddr_t;
|
||||
|
@ -52,8 +52,8 @@
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## UL)
|
||||
|
||||
#define INTMAX_C(c) (c ## L)
|
||||
#define UINTMAX_C(c) (c ## UL)
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
|
@ -52,8 +52,8 @@
|
||||
#define UINT32_C(c) (c ## U)
|
||||
#define UINT64_C(c) (c ## UL)
|
||||
|
||||
#define INTMAX_C(c) (c ## L)
|
||||
#define UINTMAX_C(c) (c ## UL)
|
||||
#define INTMAX_C(c) INT64_C(c)
|
||||
#define UINTMAX_C(c) UINT64_C(c)
|
||||
|
||||
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user