stdint.h: Don't use hex values to specify minimum values of fixed width, signed values. Hex values are inherently unsigned and not usable for this purpose in all contexts

This commit is contained in:
Gregory Nutt
2014-12-08 11:44:52 -06:00
parent b26923b746
commit 7f59a64f42
+53 -53
View File
@@ -55,80 +55,80 @@
/* Limits of exact-width integer types */ /* Limits of exact-width integer types */
#define INT8_MIN 0x80 #define INT8_MIN (-INT8_MAX - 1)
#define INT8_MAX 0x7f #define INT8_MAX 127
#define UINT8_MAX 0xff #define UINT8_MAX 255
#define INT16_MIN 0x8000 #define INT16_MIN (-INT16_MAX - 1)
#define INT16_MAX 0x7fff #define INT16_MAX 32767
#define UINT16_MAX 0xffff #define UINT16_MAX 65535u
#ifdef __INT24_DEFINED #ifdef __INT24_DEFINED
# define INT24_MIN 0x800000 # define INT24_MIN (-INT24_MAX - 1)
# define INT24_MAX 0x7fffff # define INT24_MAX 8388607
# define UINT24_MAX 0xffffff # define UINT24_MAX 16777215u
#endif #endif
#define INT32_MIN 0x80000000 #define INT32_MIN (-INT32_MAX - 1)
#define INT32_MAX 0x7fffffff #define INT32_MAX 2147483647
#define UINT32_MAX 0xffffffff #define UINT32_MAX 4294967295u
#ifdef __INT64_DEFINED #ifdef __INT64_DEFINED
# define INT64_MIN 0x8000000000000000 # define INT64_MIN (-INT64_MAX - 1ll)
# define INT64_MAX 0x7fffffffffffffff # define INT64_MAX 9223372036854775807ll
# define UINT64_MAX 0xffffffffffffffff # define UINT64_MAX 18446744073709551615ull
#endif #endif
/* Limits of minimum-width integer types */ /* Limits of minimum-width integer types */
#define INT_LEAST8_MIN 0x80 #define INT_LEAST8_MIN INT8_MIN
#define INT_LEAST8_MAX 0x7f #define INT_LEAST8_MAX INT8_MAX
#define UINT_LEAST8_MAX 0xff #define UINT_LEAST8_MAX UINT8_MAX
#define INT_LEAST16_MIN 0x8000 #define INT_LEAST16_MIN INT16_MIN
#define INT_LEAST16_MAX 0x7fff #define INT_LEAST16_MAX INT16_MAX
#define UINT_LEAST16_MAX 0xffff #define UINT_LEAST16_MAX UINT16_MAX
#ifdef __INT24_DEFINED #ifdef __INT24_DEFINED
# define INT_LEAST24_MIN 0x800000 # define INT_LEAST24_MIN INT24_MIN
# define INT_LEAST24_MAX 0x7fffff # define INT_LEAST24_MAX INT24_MAX
# define UINT_LEAST24_MAX 0xffffff # define UINT_LEAST24_MAX UINT24_MAX
#endif #endif
#define INT_LEAST32_MIN 0x80000000 #define INT_LEAST32_MIN INT32_MIN
#define INT_LEAST32_MAX 0x7fffffff #define INT_LEAST32_MAX INT32_MAX
#define UINT_LEAST32_MAX 0xffffffff #define UINT_LEAST32_MAX UINT32_MAX
#ifdef __INT64_DEFINED #ifdef __INT64_DEFINED
# define INT_LEAST64_MIN 0x8000000000000000 # define INT_LEAST64_MIN INT64_MIN
# define INT_LEAST64_MAX 0x7fffffffffffffff # define INT_LEAST64_MAX INT64_MAX
# define UINT_LEAST64_MAX 0xffffffffffffffff # define UINT_LEAST64_MAX UINT64_MAX
#endif #endif
/* Limits of fastest minimum-width integer types */ /* Limits of fastest minimum-width integer types */
#define INT_FAST8_MIN 0x80 #define INT_FAST8_MIN INT8_MIN
#define INT_FAST8_MAX 0x7f #define INT_FAST8_MAX INT8_MAX
#define UINT_FAST8_MAX 0xff #define UINT_FAST8_MAX UINT8_MAX
#define INT_FAST16_MIN 0x8000 #define INT_FAST16_MIN INT16_MIN
#define INT_FAST16_MAX 0x7fff #define INT_FAST16_MAX INT16_MAX
#define UINT_FAST16_MAX 0xffff #define UINT_FAST16_MAX UINT16_MAX
#ifdef __INT24_DEFINED #ifdef __INT24_DEFINED
# define INT_FAST24_MIN 0x800000 # define INT_FAST24_MIN INT24_MIN
# define INT_FAST24_MAX 0x7fffff # define INT_FAST24_MAX INT24_MAX
# define UINT_FAST24_MAX 0xffffff # define UINT_FAST24_MAX UINT24_MAX
#endif #endif
#define INT_FAST32_MIN 0x80000000 #define INT_FAST32_MIN INT32_MIN
#define INT_FAST32_MAX 0x7fffffff #define INT_FAST32_MAX INT32_MAX
#define UINT_FAST32_MAX 0xffffffff #define UINT_FAST32_MAX UINT32_MAX
#ifdef __INT64_DEFINED #ifdef __INT64_DEFINED
# define INT_FAST64_MIN 0x8000000000000000 # define INT_FAST64_MIN INT64_MIN
# define INT_FAST64_MAX 0x7fffffffffffffff # define INT_FAST64_MAX INT64_MAX
# define UINT_FAST64_MAX 0xffffffffffffffff # define UINT_FAST64_MAX UINT64_MAX
#endif #endif
/* Limits of integer types capable of holding object pointers */ /* Limits of integer types capable of holding object pointers */
@@ -158,23 +158,23 @@
#if 0 /* REVISIT: Depends on architecture specific implementation */ #if 0 /* REVISIT: Depends on architecture specific implementation */
#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 ## L #define INT32_C(x) x ## l
#define INT64_C(x) x ## LL #define INT64_C(x) x ## ll
#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 ## UL #define UINT32_C(x) x ## ul
#define UINT64_C(x) x ## ULL #define UINT64_C(x) x ## ull
#endif #endif
/* Macros for greatest-width integer constant expressions */ /* Macros for greatest-width integer constant expressions */
#ifdef CONFIG_HAVE_LONG_LONG #ifdef CONFIG_HAVE_LONG_LONG
# define INTMAX_C(x) x ## LL # define INTMAX_C(x) x ## ll
# define UINTMAX_C(x) x ## ULL # define UINTMAX_C(x) x ## ull
#else #else
# define INTMAX_C(x) x ## L # define INTMAX_C(x) x ## l
# define UINTMAX_C(x) x ## UL # define UINTMAX_C(x) x ## ul
#endif #endif
/* Limits of Other Integer Types */ /* Limits of Other Integer Types */