From c7af2710007865861e789b29e803f0f55deba93f Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 4 Apr 2013 19:57:23 -0400 Subject: [PATCH] eliminate bits/wchar.h the preprocessor can reliably determine the signedness of wchar_t. L'\0' is used for 0 in the expressions so that, if the underlying type of wchar_t is long rather than int, the promoted type of the expression will match the type of wchar_t. --- arch/arm/bits/wchar.h | 4 ---- arch/i386/bits/wchar.h | 4 ---- arch/microblaze/bits/wchar.h | 4 ---- arch/mips/bits/wchar.h | 4 ---- arch/powerpc/bits/wchar.h | 4 ---- arch/x86_64/bits/wchar.h | 4 ---- include/stdint.h | 9 ++++++++- include/wchar.h | 8 +++++++- 8 files changed, 15 insertions(+), 26 deletions(-) delete mode 100644 arch/arm/bits/wchar.h delete mode 100644 arch/i386/bits/wchar.h delete mode 100644 arch/microblaze/bits/wchar.h delete mode 100644 arch/mips/bits/wchar.h delete mode 100644 arch/powerpc/bits/wchar.h delete mode 100644 arch/x86_64/bits/wchar.h diff --git a/arch/arm/bits/wchar.h b/arch/arm/bits/wchar.h deleted file mode 100644 index ffb26917..00000000 --- a/arch/arm/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN 0U -#define WCHAR_MAX 0xffffffffU -#endif diff --git a/arch/i386/bits/wchar.h b/arch/i386/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/i386/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/arch/microblaze/bits/wchar.h b/arch/microblaze/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/microblaze/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/arch/mips/bits/wchar.h b/arch/mips/bits/wchar.h deleted file mode 100644 index ffb26917..00000000 --- a/arch/mips/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN 0U -#define WCHAR_MAX 0xffffffffU -#endif diff --git a/arch/powerpc/bits/wchar.h b/arch/powerpc/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/powerpc/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/arch/x86_64/bits/wchar.h b/arch/x86_64/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/x86_64/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/include/stdint.h b/include/stdint.h index 7ca9d76b..486d1ac2 100644 --- a/include/stdint.h +++ b/include/stdint.h @@ -78,7 +78,14 @@ typedef unsigned long long uintmax_t; #define WINT_MIN INT32_MIN #define WINT_MAX INT32_MAX -#include +#if L'\0'-1 > 0 +#define WCHAR_MAX (0xffffffffu+L'\0') +#define WCHAR_MIN (0+L'\0') +#else +#define WCHAR_MAX (0x7fffffff+L'\0') +#define WCHAR_MIN (-1-0x7fffffff+L'\0') +#endif + #include #endif diff --git a/include/wchar.h b/include/wchar.h index 9ceddd57..d8738818 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -24,7 +24,13 @@ extern "C" { #include -#include +#if L'\0'-1 > 0 +#define WCHAR_MAX (0xffffffffu+L'\0') +#define WCHAR_MIN (0+L'\0') +#else +#define WCHAR_MAX (0x7fffffff+L'\0') +#define WCHAR_MIN (-1-0x7fffffff+L'\0') +#endif #define NULL 0L