From 224c7a376acbc2feda12169b806e9845c828595e Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 19 Sep 2011 17:39:51 -0400 Subject: fix the type of wchar_t on arm; support wchar_t varying with arch really wchar_t should never vary, but the ARM EABI defines it as an unsigned 32-bit int instead of a signed one, and gcc follows this nonsense. thus, to give a conformant environment, we have to follow (otherwise L""[0] and L'\0' would be 0U rather than 0, but the application would be unaware due to a mismatched definition for WCHAR_MIN and WCHAR_MAX, and Bad Things could happen with respect to signed/unsigned comparisons, promotions, etc.). fortunately no rules are imposed by the C standard on the relationship between wchar_t and wint_t, and WEOF has type wint_t, so we can still make wint_t always-signed and use -1 for WEOF. --- include/stdint.h | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'include/stdint.h') diff --git a/include/stdint.h b/include/stdint.h index a4c73b5e..54006678 100644 --- a/include/stdint.h +++ b/include/stdint.h @@ -71,19 +71,14 @@ typedef unsigned long long uintmax_t; #define UINT_LEAST32_MAX UINT32_MAX #define UINT_LEAST64_MAX UINT64_MAX -#undef WCHAR_MIN -#undef WCHAR_MAX -#undef WINT_MIN -#undef WINT_MAX -#define WCHAR_MIN INT32_MIN -#define WCHAR_MAX INT32_MAX -#define WINT_MIN INT32_MIN -#define WINT_MAX INT32_MAX - #define INTMAX_MIN INT64_MIN #define INTMAX_MAX INT64_MAX #define UINTMAX_MAX UINT64_MAX +#define WINT_MIN INT32_MIN +#define WINT_MAX INT32_MAX + +#include #include #endif -- cgit v1.2.1