Always define the 64-bit int types.

These preprocessor tricks have caused trouble for -std=gnu99 and -ansi, and
both netbsd's libc and glibc seem to unconditionally define these types.

Change-Id: Ib8dffa341a8ca88f80d275ba2b7f93a4c910ee32
This commit is contained in:
Elliott Hughes 2012-08-17 14:30:06 -07:00
parent 1771a33d11
commit 6d6731adc0

View File

@ -31,8 +31,6 @@
#include <stddef.h> #include <stddef.h>
#include <sys/_types.h> #include <sys/_types.h>
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
# define __STDINT_LIMITS # define __STDINT_LIMITS
#endif #endif
@ -41,20 +39,14 @@
# define __STDINT_MACROS # define __STDINT_MACROS
#endif #endif
#if !defined __STRICT_ANSI__ || __STDC_VERSION__ >= 199901L
# define __STDC_INT64__
#endif
typedef __int8_t int8_t; typedef __int8_t int8_t;
typedef __uint8_t uint8_t; typedef __uint8_t uint8_t;
typedef __int16_t int16_t; typedef __int16_t int16_t;
typedef __uint16_t uint16_t; typedef __uint16_t uint16_t;
typedef __int32_t int32_t; typedef __int32_t int32_t;
typedef __uint32_t uint32_t; typedef __uint32_t uint32_t;
#if defined(__STDC_INT64__)
typedef __int64_t int64_t; typedef __int64_t int64_t;
typedef __uint64_t uint64_t; typedef __uint64_t uint64_t;
#endif
/* /*
* int8_t & uint8_t * int8_t & uint8_t
@ -93,7 +85,6 @@ typedef uint8_t uint_fast8_t;
* int16_t & uint16_t * int16_t & uint16_t
*/ */
typedef int16_t int_least16_t; typedef int16_t int_least16_t;
typedef int32_t int_fast16_t; typedef int32_t int_fast16_t;
@ -156,17 +147,16 @@ typedef uint32_t uint_fast32_t;
# define UINT_FAST32_C(c) UINT32_C(c) # define UINT_FAST32_C(c) UINT32_C(c)
#endif #endif
#if defined(__STDC_INT64__)
/* /*
* int64_t * int64_t
*/ */
typedef int64_t int_least64_t; typedef int64_t int_least64_t;
typedef int64_t int_fast64_t; typedef int64_t int_fast64_t;
typedef uint64_t uint_least64_t; typedef uint64_t uint_least64_t;
typedef uint64_t uint_fast64_t; typedef uint64_t uint_fast64_t;
#ifdef __STDINT_LIMITS #ifdef __STDINT_LIMITS
# define INT64_MIN (__INT64_C(-9223372036854775807)-1) # define INT64_MIN (__INT64_C(-9223372036854775807)-1)
# define INT64_MAX (__INT64_C(9223372036854775807)) # define INT64_MAX (__INT64_C(9223372036854775807))
@ -193,13 +183,10 @@ typedef uint64_t uint_fast64_t;
# define UINT_FAST64_C(c) UINT64_C(c) # define UINT_FAST64_C(c) UINT64_C(c)
#endif #endif
# define __PRI64_RANK "ll" # define __PRI64_RANK "ll"
# define __PRIFAST_RANK "" # define __PRIFAST_RANK ""
# define __PRIPTR_RANK "" # define __PRIPTR_RANK ""
#endif /* __STDC_INT64__ */
/* /*
* intptr_t & uintptr_t * intptr_t & uintptr_t
*/ */
@ -221,14 +208,10 @@ typedef unsigned int uintptr_t;
# define PTRDIFF_C(c) INT32_C(c) # define PTRDIFF_C(c) INT32_C(c)
#endif #endif
/* /*
* intmax_t & uintmax_t * intmax_t & uintmax_t
*/ */
#if defined(__STDC_INT64__)
typedef uint64_t uintmax_t; typedef uint64_t uintmax_t;
typedef int64_t intmax_t; typedef int64_t intmax_t;
@ -243,25 +226,6 @@ typedef int64_t intmax_t;
# define UINTMAX_C(c) UINT64_C(c) # define UINTMAX_C(c) UINT64_C(c)
#endif #endif
#else /* !__STDC_INT64__ */
typedef uint32_t uintmax_t;
typedef int32_t intmax_t;
#ifdef __STDINT_LIMITS
# define INTMAX_MIN INT32_MIN
# define INTMAX_MAX INT32_MAX
# define UINTMAX_MAX UINT32_MAX
#endif
#ifdef __STDINT_MACROS
# define INTMAX_C(c) INT32_C(c)
# define UINTMAX_C(c) UINT32_C(c)
#endif
#endif /* !__STDC_INT64__ */
/* size_t is defined by the GCC-specific <stddef.h> */ /* size_t is defined by the GCC-specific <stddef.h> */
#ifndef _SSIZE_T_DEFINED_ #ifndef _SSIZE_T_DEFINED_
#define _SSIZE_T_DEFINED_ #define _SSIZE_T_DEFINED_