diff options
Diffstat (limited to 'gcc/glimits.h')
-rw-r--r-- | gcc/glimits.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/glimits.h b/gcc/glimits.h index f0cb0a3bba4..bdf7e31ad38 100644 --- a/gcc/glimits.h +++ b/gcc/glimits.h @@ -37,12 +37,15 @@ #define CHAR_MAX 127 #endif +#ifndef __SHRT_MAX__ +#define __SHRT_MAX__ 32767 +#endif + /* Minimum and maximum values a `signed short int' can hold. */ #undef SHRT_MIN -/* For the sake of 16 bit hosts, we may not use -32768 */ -#define SHRT_MIN (-32767-1) +#define SHRT_MIN (-SHRT_MAX-1) #undef SHRT_MAX -#define SHRT_MAX 32767 +#define SHRT_MAX __SHRT_MAX__ /* Minimum and maximum values a `signed int' can hold. */ #ifndef __INT_MAX__ @@ -55,10 +58,10 @@ /* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ #undef USHRT_MAX -#if INT_MAX < 65535 -#define USHRT_MAX 65535U +#if __SHRT_MAX__ == __INT_MAX__ +#define USHRT_MAX (SHRT_MAX * 2U + 1U) #else -#define USHRT_MAX 65535 +#define USHRT_MAX (SHRT_MAX * 2 + 1) #endif /* Maximum value an `unsigned int' can hold. (Minimum is 0). */ |