summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xarch/arm/bits/alltypes.h.sh8
-rw-r--r--arch/arm/bits/wchar.h4
-rw-r--r--arch/i386/bits/wchar.h4
-rw-r--r--arch/x86_64/bits/wchar.h4
-rw-r--r--include/stdint.h13
-rw-r--r--include/wchar.h8
6 files changed, 20 insertions, 21 deletions
diff --git a/arch/arm/bits/alltypes.h.sh b/arch/arm/bits/alltypes.h.sh
index 6409a96e..11f1d93f 100755
--- a/arch/arm/bits/alltypes.h.sh
+++ b/arch/arm/bits/alltypes.h.sh
@@ -22,12 +22,8 @@ TYPEDEF long ptrdiff_t;
TYPEDEF __builtin_va_list va_list;
-#ifdef __WCHAR_TYPE__
-TYPEDEF __WCHAR_TYPE__ wchar_t;
-#else
-TYPEDEF long wchar_t;
-#endif
-TYPEDEF long wint_t;
+TYPEDEF unsigned wchar_t;
+TYPEDEF int wint_t;
TYPEDEF long wctrans_t;
TYPEDEF long wctype_t;
diff --git a/arch/arm/bits/wchar.h b/arch/arm/bits/wchar.h
new file mode 100644
index 00000000..ffb26917
--- /dev/null
+++ b/arch/arm/bits/wchar.h
@@ -0,0 +1,4 @@
+#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
new file mode 100644
index 00000000..c969c5b6
--- /dev/null
+++ b/arch/i386/bits/wchar.h
@@ -0,0 +1,4 @@
+#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
new file mode 100644
index 00000000..c969c5b6
--- /dev/null
+++ b/arch/x86_64/bits/wchar.h
@@ -0,0 +1,4 @@
+#ifndef WCHAR_MIN
+#define WCHAR_MIN (-1-0x7fffffff)
+#define WCHAR_MAX (0x7fffffff)
+#endif
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 <bits/wchar.h>
#include <bits/stdint.h>
#endif
diff --git a/include/wchar.h b/include/wchar.h
index c3d8b045..87e244a3 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -17,6 +17,8 @@ extern "C" {
#include <bits/alltypes.h>
+#include <bits/wchar.h>
+
#undef NULL
#ifdef __cplusplus
#define NULL 0
@@ -24,15 +26,9 @@ extern "C" {
#define NULL ((void*)0)
#endif
-#undef WCHAR_MIN
-#undef WCHAR_MAX
-#define WCHAR_MIN (-1-0x7fffffff)
-#define WCHAR_MAX (0x7fffffff)
-
#undef WEOF
#define WEOF (-1)
-
typedef struct
{
unsigned __opaque1, __opaque2;