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.
This commit is contained in:
Rich Felker 2013-04-04 19:57:23 -04:00
parent 201995f382
commit c7af271000
8 changed files with 15 additions and 26 deletions

View File

@ -1,4 +0,0 @@
#ifndef WCHAR_MIN
#define WCHAR_MIN 0U
#define WCHAR_MAX 0xffffffffU
#endif

View File

@ -1,4 +0,0 @@
#ifndef WCHAR_MIN
#define WCHAR_MIN (-1-0x7fffffff)
#define WCHAR_MAX (0x7fffffff)
#endif

View File

@ -1,4 +0,0 @@
#ifndef WCHAR_MIN
#define WCHAR_MIN (-1-0x7fffffff)
#define WCHAR_MAX (0x7fffffff)
#endif

View File

@ -1,4 +0,0 @@
#ifndef WCHAR_MIN
#define WCHAR_MIN 0U
#define WCHAR_MAX 0xffffffffU
#endif

View File

@ -1,4 +0,0 @@
#ifndef WCHAR_MIN
#define WCHAR_MIN (-1-0x7fffffff)
#define WCHAR_MAX (0x7fffffff)
#endif

View File

@ -1,4 +0,0 @@
#ifndef WCHAR_MIN
#define WCHAR_MIN (-1-0x7fffffff)
#define WCHAR_MAX (0x7fffffff)
#endif

View File

@ -78,7 +78,14 @@ typedef unsigned long long uintmax_t;
#define WINT_MIN INT32_MIN
#define WINT_MAX INT32_MAX
#include <bits/wchar.h>
#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 <bits/stdint.h>
#endif

View File

@ -24,7 +24,13 @@ extern "C" {
#include <bits/alltypes.h>
#include <bits/wchar.h>
#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