diff options
Diffstat (limited to 'gl/stdint.in.h')
| -rw-r--r-- | gl/stdint.in.h | 286 |
1 files changed, 177 insertions, 109 deletions
diff --git a/gl/stdint.in.h b/gl/stdint.in.h index 5da5f178..2db8b2e3 100644 --- a/gl/stdint.in.h +++ b/gl/stdint.in.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc. | 1 | /* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc. |
| 2 | Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. | 2 | Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. |
| 3 | This file is part of gnulib. | 3 | This file is part of gnulib. |
| 4 | 4 | ||
| @@ -13,19 +13,19 @@ | |||
| 13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
| 14 | 14 | ||
| 15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
| 16 | along with this program; if not, write to the Free Software Foundation, | 16 | along with this program; if not, see <http://www.gnu.org/licenses/>. */ |
| 17 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ | ||
| 18 | 17 | ||
| 19 | /* | 18 | /* |
| 20 | * ISO C 99 <stdint.h> for platforms that lack it. | 19 | * ISO C 99 <stdint.h> for platforms that lack it. |
| 21 | * <http://www.opengroup.org/susv3xbd/stdint.h.html> | 20 | * <http://www.opengroup.org/susv3xbd/stdint.h.html> |
| 22 | */ | 21 | */ |
| 23 | 22 | ||
| 24 | #ifndef _GL_STDINT_H | 23 | #ifndef _@GUARD_PREFIX@_STDINT_H |
| 25 | 24 | ||
| 26 | #if __GNUC__ >= 3 | 25 | #if __GNUC__ >= 3 |
| 27 | @PRAGMA_SYSTEM_HEADER@ | 26 | @PRAGMA_SYSTEM_HEADER@ |
| 28 | #endif | 27 | #endif |
| 28 | @PRAGMA_COLUMNS@ | ||
| 29 | 29 | ||
| 30 | /* When including a system file that in turn includes <inttypes.h>, | 30 | /* When including a system file that in turn includes <inttypes.h>, |
| 31 | use the system <inttypes.h>, not our substitute. This avoids | 31 | use the system <inttypes.h>, not our substitute. This avoids |
| @@ -33,6 +33,16 @@ | |||
| 33 | <inttypes.h>. */ | 33 | <inttypes.h>. */ |
| 34 | #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | 34 | #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H |
| 35 | 35 | ||
| 36 | /* On Android (Bionic libc), <sys/types.h> includes this file before | ||
| 37 | having defined 'time_t'. Therefore in this case avoid including | ||
| 38 | other system header files; just include the system's <stdint.h>. | ||
| 39 | Ideally we should test __BIONIC__ here, but it is only defined after | ||
| 40 | <sys/cdefs.h> has been included; hence test __ANDROID__ instead. */ | ||
| 41 | #if defined __ANDROID__ \ | ||
| 42 | && defined _SYS_TYPES_H_ && !defined __need_size_t | ||
| 43 | # @INCLUDE_NEXT@ @NEXT_STDINT_H@ | ||
| 44 | #else | ||
| 45 | |||
| 36 | /* Get those types that are already defined in other system include | 46 | /* Get those types that are already defined in other system include |
| 37 | files, so that we can "#define int8_t signed char" below without | 47 | files, so that we can "#define int8_t signed char" below without |
| 38 | worrying about a later system include file containing a "typedef | 48 | worrying about a later system include file containing a "typedef |
| @@ -48,28 +58,40 @@ | |||
| 48 | diagnostics. */ | 58 | diagnostics. */ |
| 49 | # define __STDINT_H__ | 59 | # define __STDINT_H__ |
| 50 | # endif | 60 | # endif |
| 61 | |||
| 62 | /* Some pre-C++11 <stdint.h> implementations need this. */ | ||
| 63 | # ifdef __cplusplus | ||
| 64 | # ifndef __STDC_CONSTANT_MACROS | ||
| 65 | # define __STDC_CONSTANT_MACROS 1 | ||
| 66 | # endif | ||
| 67 | # ifndef __STDC_LIMIT_MACROS | ||
| 68 | # define __STDC_LIMIT_MACROS 1 | ||
| 69 | # endif | ||
| 70 | # endif | ||
| 71 | |||
| 51 | /* Other systems may have an incomplete or buggy <stdint.h>. | 72 | /* Other systems may have an incomplete or buggy <stdint.h>. |
| 52 | Include it before <inttypes.h>, since any "#include <stdint.h>" | 73 | Include it before <inttypes.h>, since any "#include <stdint.h>" |
| 53 | in <inttypes.h> would reinclude us, skipping our contents because | 74 | in <inttypes.h> would reinclude us, skipping our contents because |
| 54 | _GL_STDINT_H is defined. | 75 | _@GUARD_PREFIX@_STDINT_H is defined. |
| 55 | The include_next requires a split double-inclusion guard. */ | 76 | The include_next requires a split double-inclusion guard. */ |
| 56 | # @INCLUDE_NEXT@ @NEXT_STDINT_H@ | 77 | # @INCLUDE_NEXT@ @NEXT_STDINT_H@ |
| 57 | #endif | 78 | #endif |
| 58 | 79 | ||
| 59 | #if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H | 80 | #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H |
| 60 | #define _GL_STDINT_H | 81 | #define _@GUARD_PREFIX@_STDINT_H |
| 61 | 82 | ||
| 62 | /* <sys/types.h> defines some of the stdint.h types as well, on glibc, | 83 | /* <sys/types.h> defines some of the stdint.h types as well, on glibc, |
| 63 | IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). | 84 | IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). |
| 64 | AIX 5.2 <sys/types.h> isn't needed and causes troubles. | 85 | AIX 5.2 <sys/types.h> isn't needed and causes troubles. |
| 65 | MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but | 86 | Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but |
| 66 | relies on the system <stdint.h> definitions, so include | 87 | relies on the system <stdint.h> definitions, so include |
| 67 | <sys/types.h> after @NEXT_STDINT_H@. */ | 88 | <sys/types.h> after @NEXT_STDINT_H@. */ |
| 68 | #if @HAVE_SYS_TYPES_H@ && ! defined _AIX | 89 | #if @HAVE_SYS_TYPES_H@ && ! defined _AIX |
| 69 | # include <sys/types.h> | 90 | # include <sys/types.h> |
| 70 | #endif | 91 | #endif |
| 71 | 92 | ||
| 72 | /* Get LONG_MIN, LONG_MAX, ULONG_MAX. */ | 93 | /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, |
| 94 | LONG_MIN, LONG_MAX, ULONG_MAX. */ | ||
| 73 | #include <limits.h> | 95 | #include <limits.h> |
| 74 | 96 | ||
| 75 | #if @HAVE_INTTYPES_H@ | 97 | #if @HAVE_INTTYPES_H@ |
| @@ -92,7 +114,7 @@ | |||
| 92 | 114 | ||
| 93 | #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | 115 | #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H |
| 94 | 116 | ||
| 95 | /* Minimum and maximum values for a integer type under the usual assumption. | 117 | /* Minimum and maximum values for an integer type under the usual assumption. |
| 96 | Return an unspecified value if BITS == 0, adding a check to pacify | 118 | Return an unspecified value if BITS == 0, adding a check to pacify |
| 97 | picky compilers. */ | 119 | picky compilers. */ |
| 98 | 120 | ||
| @@ -107,6 +129,8 @@ | |||
| 107 | warnings in the signed case. */ \ | 129 | warnings in the signed case. */ \ |
| 108 | ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) | 130 | ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) |
| 109 | 131 | ||
| 132 | #if !GNULIB_defined_stdint_types | ||
| 133 | |||
| 110 | /* 7.18.1.1. Exact-width integer types */ | 134 | /* 7.18.1.1. Exact-width integer types */ |
| 111 | 135 | ||
| 112 | /* Here we assume a standard architecture where the hardware integer | 136 | /* Here we assume a standard architecture where the hardware integer |
| @@ -133,40 +157,54 @@ typedef unsigned int gl_uint32_t; | |||
| 133 | #define int32_t gl_int32_t | 157 | #define int32_t gl_int32_t |
| 134 | #define uint32_t gl_uint32_t | 158 | #define uint32_t gl_uint32_t |
| 135 | 159 | ||
| 160 | /* If the system defines INT64_MAX, assume int64_t works. That way, | ||
| 161 | if the underlying platform defines int64_t to be a 64-bit long long | ||
| 162 | int, the code below won't mistakenly define it to be a 64-bit long | ||
| 163 | int, which would mess up C++ name mangling. We must use #ifdef | ||
| 164 | rather than #if, to avoid an error with HP-UX 10.20 cc. */ | ||
| 165 | |||
| 166 | #ifdef INT64_MAX | ||
| 167 | # define GL_INT64_T | ||
| 168 | #else | ||
| 136 | /* Do not undefine int64_t if gnulib is not being used with 64-bit | 169 | /* Do not undefine int64_t if gnulib is not being used with 64-bit |
| 137 | types, since otherwise it breaks platforms like Tandem/NSK. */ | 170 | types, since otherwise it breaks platforms like Tandem/NSK. */ |
| 138 | #if LONG_MAX >> 31 >> 31 == 1 | 171 | # if LONG_MAX >> 31 >> 31 == 1 |
| 139 | # undef int64_t | 172 | # undef int64_t |
| 140 | typedef long int gl_int64_t; | 173 | typedef long int gl_int64_t; |
| 141 | # define int64_t gl_int64_t | 174 | # define int64_t gl_int64_t |
| 142 | # define GL_INT64_T | 175 | # define GL_INT64_T |
| 143 | #elif defined _MSC_VER | 176 | # elif defined _MSC_VER |
| 144 | # undef int64_t | 177 | # undef int64_t |
| 145 | typedef __int64 gl_int64_t; | 178 | typedef __int64 gl_int64_t; |
| 146 | # define int64_t gl_int64_t | 179 | # define int64_t gl_int64_t |
| 147 | # define GL_INT64_T | 180 | # define GL_INT64_T |
| 148 | #elif @HAVE_LONG_LONG_INT@ | 181 | # elif @HAVE_LONG_LONG_INT@ |
| 149 | # undef int64_t | 182 | # undef int64_t |
| 150 | typedef long long int gl_int64_t; | 183 | typedef long long int gl_int64_t; |
| 151 | # define int64_t gl_int64_t | 184 | # define int64_t gl_int64_t |
| 152 | # define GL_INT64_T | 185 | # define GL_INT64_T |
| 186 | # endif | ||
| 153 | #endif | 187 | #endif |
| 154 | 188 | ||
| 155 | #if ULONG_MAX >> 31 >> 31 >> 1 == 1 | 189 | #ifdef UINT64_MAX |
| 156 | # undef uint64_t | ||
| 157 | typedef unsigned long int gl_uint64_t; | ||
| 158 | # define uint64_t gl_uint64_t | ||
| 159 | # define GL_UINT64_T | 190 | # define GL_UINT64_T |
| 160 | #elif defined _MSC_VER | 191 | #else |
| 161 | # undef uint64_t | 192 | # if ULONG_MAX >> 31 >> 31 >> 1 == 1 |
| 193 | # undef uint64_t | ||
| 194 | typedef unsigned long int gl_uint64_t; | ||
| 195 | # define uint64_t gl_uint64_t | ||
| 196 | # define GL_UINT64_T | ||
| 197 | # elif defined _MSC_VER | ||
| 198 | # undef uint64_t | ||
| 162 | typedef unsigned __int64 gl_uint64_t; | 199 | typedef unsigned __int64 gl_uint64_t; |
| 163 | # define uint64_t gl_uint64_t | 200 | # define uint64_t gl_uint64_t |
| 164 | # define GL_UINT64_T | 201 | # define GL_UINT64_T |
| 165 | #elif @HAVE_UNSIGNED_LONG_LONG_INT@ | 202 | # elif @HAVE_UNSIGNED_LONG_LONG_INT@ |
| 166 | # undef uint64_t | 203 | # undef uint64_t |
| 167 | typedef unsigned long long int gl_uint64_t; | 204 | typedef unsigned long long int gl_uint64_t; |
| 168 | # define uint64_t gl_uint64_t | 205 | # define uint64_t gl_uint64_t |
| 169 | # define GL_UINT64_T | 206 | # define GL_UINT64_T |
| 207 | # endif | ||
| 170 | #endif | 208 | #endif |
| 171 | 209 | ||
| 172 | /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ | 210 | /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ |
| @@ -209,8 +247,9 @@ typedef unsigned long long int gl_uint64_t; | |||
| 209 | 247 | ||
| 210 | /* Here we assume a standard architecture where the hardware integer | 248 | /* Here we assume a standard architecture where the hardware integer |
| 211 | types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types | 249 | types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types |
| 212 | are taken from the same list of types. Assume that 'long int' | 250 | are taken from the same list of types. The following code normally |
| 213 | is fast enough for all narrower integers. */ | 251 | uses types consistent with glibc, as that lessens the chance of |
| 252 | incompatibility with older GNU hosts. */ | ||
| 214 | 253 | ||
| 215 | #undef int_fast8_t | 254 | #undef int_fast8_t |
| 216 | #undef uint_fast8_t | 255 | #undef uint_fast8_t |
| @@ -220,12 +259,21 @@ typedef unsigned long long int gl_uint64_t; | |||
| 220 | #undef uint_fast32_t | 259 | #undef uint_fast32_t |
| 221 | #undef int_fast64_t | 260 | #undef int_fast64_t |
| 222 | #undef uint_fast64_t | 261 | #undef uint_fast64_t |
| 223 | typedef long int gl_int_fast8_t; | 262 | typedef signed char gl_int_fast8_t; |
| 224 | typedef unsigned long int gl_uint_fast8_t; | 263 | typedef unsigned char gl_uint_fast8_t; |
| 225 | typedef long int gl_int_fast16_t; | 264 | |
| 226 | typedef unsigned long int gl_uint_fast16_t; | 265 | #ifdef __sun |
| 266 | /* Define types compatible with SunOS 5.10, so that code compiled under | ||
| 267 | earlier SunOS versions works with code compiled under SunOS 5.10. */ | ||
| 268 | typedef int gl_int_fast32_t; | ||
| 269 | typedef unsigned int gl_uint_fast32_t; | ||
| 270 | #else | ||
| 227 | typedef long int gl_int_fast32_t; | 271 | typedef long int gl_int_fast32_t; |
| 228 | typedef unsigned long int gl_uint_fast32_t; | 272 | typedef unsigned long int gl_uint_fast32_t; |
| 273 | #endif | ||
| 274 | typedef gl_int_fast32_t gl_int_fast16_t; | ||
| 275 | typedef gl_uint_fast32_t gl_uint_fast16_t; | ||
| 276 | |||
| 229 | #define int_fast8_t gl_int_fast8_t | 277 | #define int_fast8_t gl_int_fast8_t |
| 230 | #define uint_fast8_t gl_uint_fast8_t | 278 | #define uint_fast8_t gl_uint_fast8_t |
| 231 | #define int_fast16_t gl_int_fast16_t | 279 | #define int_fast16_t gl_int_fast16_t |
| @@ -253,36 +301,48 @@ typedef unsigned long int gl_uintptr_t; | |||
| 253 | /* Note: These types are compiler dependent. It may be unwise to use them in | 301 | /* Note: These types are compiler dependent. It may be unwise to use them in |
| 254 | public header files. */ | 302 | public header files. */ |
| 255 | 303 | ||
| 256 | #undef intmax_t | 304 | /* If the system defines INTMAX_MAX, assume that intmax_t works, and |
| 257 | #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | 305 | similarly for UINTMAX_MAX and uintmax_t. This avoids problems with |
| 306 | assuming one type where another is used by the system. */ | ||
| 307 | |||
| 308 | #ifndef INTMAX_MAX | ||
| 309 | # undef INTMAX_C | ||
| 310 | # undef intmax_t | ||
| 311 | # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | ||
| 258 | typedef long long int gl_intmax_t; | 312 | typedef long long int gl_intmax_t; |
| 259 | # define intmax_t gl_intmax_t | 313 | # define intmax_t gl_intmax_t |
| 260 | #elif defined GL_INT64_T | 314 | # elif defined GL_INT64_T |
| 261 | # define intmax_t int64_t | 315 | # define intmax_t int64_t |
| 262 | #else | 316 | # else |
| 263 | typedef long int gl_intmax_t; | 317 | typedef long int gl_intmax_t; |
| 264 | # define intmax_t gl_intmax_t | 318 | # define intmax_t gl_intmax_t |
| 319 | # endif | ||
| 265 | #endif | 320 | #endif |
| 266 | 321 | ||
| 267 | #undef uintmax_t | 322 | #ifndef UINTMAX_MAX |
| 268 | #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | 323 | # undef UINTMAX_C |
| 324 | # undef uintmax_t | ||
| 325 | # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | ||
| 269 | typedef unsigned long long int gl_uintmax_t; | 326 | typedef unsigned long long int gl_uintmax_t; |
| 270 | # define uintmax_t gl_uintmax_t | 327 | # define uintmax_t gl_uintmax_t |
| 271 | #elif defined GL_UINT64_T | 328 | # elif defined GL_UINT64_T |
| 272 | # define uintmax_t uint64_t | 329 | # define uintmax_t uint64_t |
| 273 | #else | 330 | # else |
| 274 | typedef unsigned long int gl_uintmax_t; | 331 | typedef unsigned long int gl_uintmax_t; |
| 275 | # define uintmax_t gl_uintmax_t | 332 | # define uintmax_t gl_uintmax_t |
| 333 | # endif | ||
| 276 | #endif | 334 | #endif |
| 277 | 335 | ||
| 278 | /* Verify that intmax_t and uintmax_t have the same size. Too much code | 336 | /* Verify that intmax_t and uintmax_t have the same size. Too much code |
| 279 | breaks if this is not the case. If this check fails, the reason is likely | 337 | breaks if this is not the case. If this check fails, the reason is likely |
| 280 | to be found in the autoconf macros. */ | 338 | to be found in the autoconf macros. */ |
| 281 | typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1]; | 339 | typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) |
| 340 | ? 1 : -1]; | ||
| 282 | 341 | ||
| 283 | /* 7.18.2. Limits of specified-width integer types */ | 342 | #define GNULIB_defined_stdint_types 1 |
| 343 | #endif /* !GNULIB_defined_stdint_types */ | ||
| 284 | 344 | ||
| 285 | #if ! defined __cplusplus || defined __STDC_LIMIT_MACROS | 345 | /* 7.18.2. Limits of specified-width integer types */ |
| 286 | 346 | ||
| 287 | /* 7.18.2.1. Limits of exact-width integer types */ | 347 | /* 7.18.2.1. Limits of exact-width integer types */ |
| 288 | 348 | ||
| @@ -310,17 +370,14 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - | |||
| 310 | #define INT32_MAX 2147483647 | 370 | #define INT32_MAX 2147483647 |
| 311 | #define UINT32_MAX 4294967295U | 371 | #define UINT32_MAX 4294967295U |
| 312 | 372 | ||
| 313 | #undef INT64_MIN | 373 | #if defined GL_INT64_T && ! defined INT64_MAX |
| 314 | #undef INT64_MAX | ||
| 315 | #ifdef GL_INT64_T | ||
| 316 | /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 | 374 | /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 |
| 317 | evaluates the latter incorrectly in preprocessor expressions. */ | 375 | evaluates the latter incorrectly in preprocessor expressions. */ |
| 318 | # define INT64_MIN (- INTMAX_C (1) << 63) | 376 | # define INT64_MIN (- INTMAX_C (1) << 63) |
| 319 | # define INT64_MAX INTMAX_C (9223372036854775807) | 377 | # define INT64_MAX INTMAX_C (9223372036854775807) |
| 320 | #endif | 378 | #endif |
| 321 | 379 | ||
| 322 | #undef UINT64_MAX | 380 | #if defined GL_UINT64_T && ! defined UINT64_MAX |
| 323 | #ifdef GL_UINT64_T | ||
| 324 | # define UINT64_MAX UINTMAX_C (18446744073709551615) | 381 | # define UINT64_MAX UINTMAX_C (18446744073709551615) |
| 325 | #endif | 382 | #endif |
| 326 | 383 | ||
| @@ -372,23 +429,29 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - | |||
| 372 | #undef INT_FAST8_MIN | 429 | #undef INT_FAST8_MIN |
| 373 | #undef INT_FAST8_MAX | 430 | #undef INT_FAST8_MAX |
| 374 | #undef UINT_FAST8_MAX | 431 | #undef UINT_FAST8_MAX |
| 375 | #define INT_FAST8_MIN LONG_MIN | 432 | #define INT_FAST8_MIN SCHAR_MIN |
| 376 | #define INT_FAST8_MAX LONG_MAX | 433 | #define INT_FAST8_MAX SCHAR_MAX |
| 377 | #define UINT_FAST8_MAX ULONG_MAX | 434 | #define UINT_FAST8_MAX UCHAR_MAX |
| 378 | 435 | ||
| 379 | #undef INT_FAST16_MIN | 436 | #undef INT_FAST16_MIN |
| 380 | #undef INT_FAST16_MAX | 437 | #undef INT_FAST16_MAX |
| 381 | #undef UINT_FAST16_MAX | 438 | #undef UINT_FAST16_MAX |
| 382 | #define INT_FAST16_MIN LONG_MIN | 439 | #define INT_FAST16_MIN INT_FAST32_MIN |
| 383 | #define INT_FAST16_MAX LONG_MAX | 440 | #define INT_FAST16_MAX INT_FAST32_MAX |
| 384 | #define UINT_FAST16_MAX ULONG_MAX | 441 | #define UINT_FAST16_MAX UINT_FAST32_MAX |
| 385 | 442 | ||
| 386 | #undef INT_FAST32_MIN | 443 | #undef INT_FAST32_MIN |
| 387 | #undef INT_FAST32_MAX | 444 | #undef INT_FAST32_MAX |
| 388 | #undef UINT_FAST32_MAX | 445 | #undef UINT_FAST32_MAX |
| 389 | #define INT_FAST32_MIN LONG_MIN | 446 | #ifdef __sun |
| 390 | #define INT_FAST32_MAX LONG_MAX | 447 | # define INT_FAST32_MIN INT_MIN |
| 391 | #define UINT_FAST32_MAX ULONG_MAX | 448 | # define INT_FAST32_MAX INT_MAX |
| 449 | # define UINT_FAST32_MAX UINT_MAX | ||
| 450 | #else | ||
| 451 | # define INT_FAST32_MIN LONG_MIN | ||
| 452 | # define INT_FAST32_MAX LONG_MAX | ||
| 453 | # define UINT_FAST32_MAX ULONG_MAX | ||
| 454 | #endif | ||
| 392 | 455 | ||
| 393 | #undef INT_FAST64_MIN | 456 | #undef INT_FAST64_MIN |
| 394 | #undef INT_FAST64_MAX | 457 | #undef INT_FAST64_MAX |
| @@ -413,21 +476,23 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - | |||
| 413 | 476 | ||
| 414 | /* 7.18.2.5. Limits of greatest-width integer types */ | 477 | /* 7.18.2.5. Limits of greatest-width integer types */ |
| 415 | 478 | ||
| 416 | #undef INTMAX_MIN | 479 | #ifndef INTMAX_MAX |
| 417 | #undef INTMAX_MAX | 480 | # undef INTMAX_MIN |
| 418 | #ifdef INT64_MAX | 481 | # ifdef INT64_MAX |
| 419 | # define INTMAX_MIN INT64_MIN | 482 | # define INTMAX_MIN INT64_MIN |
| 420 | # define INTMAX_MAX INT64_MAX | 483 | # define INTMAX_MAX INT64_MAX |
| 421 | #else | 484 | # else |
| 422 | # define INTMAX_MIN INT32_MIN | 485 | # define INTMAX_MIN INT32_MIN |
| 423 | # define INTMAX_MAX INT32_MAX | 486 | # define INTMAX_MAX INT32_MAX |
| 487 | # endif | ||
| 424 | #endif | 488 | #endif |
| 425 | 489 | ||
| 426 | #undef UINTMAX_MAX | 490 | #ifndef UINTMAX_MAX |
| 427 | #ifdef UINT64_MAX | 491 | # ifdef UINT64_MAX |
| 428 | # define UINTMAX_MAX UINT64_MAX | 492 | # define UINTMAX_MAX UINT64_MAX |
| 429 | #else | 493 | # else |
| 430 | # define UINTMAX_MAX UINT32_MAX | 494 | # define UINTMAX_MAX UINT32_MAX |
| 495 | # endif | ||
| 431 | #endif | 496 | #endif |
| 432 | 497 | ||
| 433 | /* 7.18.3. Limits of other integer types */ | 498 | /* 7.18.3. Limits of other integer types */ |
| @@ -475,10 +540,16 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - | |||
| 475 | 540 | ||
| 476 | /* wchar_t limits */ | 541 | /* wchar_t limits */ |
| 477 | /* Get WCHAR_MIN, WCHAR_MAX. | 542 | /* Get WCHAR_MIN, WCHAR_MAX. |
| 478 | This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested | 543 | This include is not on the top, above, because on OSF/1 4.0 we have a |
| 479 | includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes | 544 | sequence of nested includes |
| 545 | <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes | ||
| 480 | <stdint.h> and assumes its types are already defined. */ | 546 | <stdint.h> and assumes its types are already defined. */ |
| 481 | #if ! (defined WCHAR_MIN && defined WCHAR_MAX) | 547 | #if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) |
| 548 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 549 | included before <wchar.h>. */ | ||
| 550 | # include <stddef.h> | ||
| 551 | # include <stdio.h> | ||
| 552 | # include <time.h> | ||
| 482 | # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H | 553 | # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H |
| 483 | # include <wchar.h> | 554 | # include <wchar.h> |
| 484 | # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H | 555 | # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H |
| @@ -498,12 +569,8 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - | |||
| 498 | #define WINT_MAX \ | 569 | #define WINT_MAX \ |
| 499 | _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) | 570 | _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) |
| 500 | 571 | ||
| 501 | #endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */ | ||
| 502 | |||
| 503 | /* 7.18.4. Macros for integer constants */ | 572 | /* 7.18.4. Macros for integer constants */ |
| 504 | 573 | ||
| 505 | #if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS | ||
| 506 | |||
| 507 | /* 7.18.4.1. Macros for minimum-width integer constants */ | 574 | /* 7.18.4.1. Macros for minimum-width integer constants */ |
| 508 | /* According to ISO C 99 Technical Corrigendum 1 */ | 575 | /* According to ISO C 99 Technical Corrigendum 1 */ |
| 509 | 576 | ||
| @@ -544,25 +611,26 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - | |||
| 544 | 611 | ||
| 545 | /* 7.18.4.2. Macros for greatest-width integer constants */ | 612 | /* 7.18.4.2. Macros for greatest-width integer constants */ |
| 546 | 613 | ||
| 547 | #undef INTMAX_C | 614 | #ifndef INTMAX_C |
| 548 | #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | 615 | # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 |
| 549 | # define INTMAX_C(x) x##LL | 616 | # define INTMAX_C(x) x##LL |
| 550 | #elif defined GL_INT64_T | 617 | # elif defined GL_INT64_T |
| 551 | # define INTMAX_C(x) INT64_C(x) | 618 | # define INTMAX_C(x) INT64_C(x) |
| 552 | #else | 619 | # else |
| 553 | # define INTMAX_C(x) x##L | 620 | # define INTMAX_C(x) x##L |
| 621 | # endif | ||
| 554 | #endif | 622 | #endif |
| 555 | 623 | ||
| 556 | #undef UINTMAX_C | 624 | #ifndef UINTMAX_C |
| 557 | #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | 625 | # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 |
| 558 | # define UINTMAX_C(x) x##ULL | 626 | # define UINTMAX_C(x) x##ULL |
| 559 | #elif defined GL_UINT64_T | 627 | # elif defined GL_UINT64_T |
| 560 | # define UINTMAX_C(x) UINT64_C(x) | 628 | # define UINTMAX_C(x) UINT64_C(x) |
| 561 | #else | 629 | # else |
| 562 | # define UINTMAX_C(x) x##UL | 630 | # define UINTMAX_C(x) x##UL |
| 631 | # endif | ||
| 563 | #endif | 632 | #endif |
| 564 | 633 | ||
| 565 | #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ | 634 | #endif /* _@GUARD_PREFIX@_STDINT_H */ |
| 566 | 635 | #endif /* !(defined __ANDROID__ && ...) */ | |
| 567 | #endif /* _GL_STDINT_H */ | 636 | #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ |
| 568 | #endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ | ||
