提交 c4dd0c98 编写于 作者: R Rich Felker

change wint_t to unsigned

aside from the obvious C++ ABI purpose for this change, it also brings
musl into alignment with the compiler's idea of the definition of
wint_t (use in -Wformat), and makes the situation less awkward on ARM,
where wchar_t is unsigned.

internal code using wint_t and WEOF was checked against this change,
and while a few cases of storing WEOF into wchar_t were found, they
all seem to operate properly with the natural conversion from unsigned
to signed.
上级 9448b051
...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list; ...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list;
#ifndef __cplusplus #ifndef __cplusplus
TYPEDEF unsigned wchar_t; TYPEDEF unsigned wchar_t;
#endif #endif
TYPEDEF int wint_t; TYPEDEF unsigned wint_t;
TYPEDEF float float_t; TYPEDEF float float_t;
TYPEDEF double double_t; TYPEDEF double double_t;
......
...@@ -16,7 +16,7 @@ TYPEDEF __WCHAR_TYPE__ wchar_t; ...@@ -16,7 +16,7 @@ TYPEDEF __WCHAR_TYPE__ wchar_t;
TYPEDEF long wchar_t; TYPEDEF long wchar_t;
#endif #endif
#endif #endif
TYPEDEF long wint_t; TYPEDEF unsigned wint_t;
#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 0 #if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 0
TYPEDEF float float_t; TYPEDEF float float_t;
......
...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list; ...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list;
#ifndef __cplusplus #ifndef __cplusplus
TYPEDEF int wchar_t; TYPEDEF int wchar_t;
#endif #endif
TYPEDEF int wint_t; TYPEDEF unsigned wint_t;
TYPEDEF float float_t; TYPEDEF float float_t;
TYPEDEF double double_t; TYPEDEF double double_t;
......
...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list; ...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list;
#ifndef __cplusplus #ifndef __cplusplus
TYPEDEF int wchar_t; TYPEDEF int wchar_t;
#endif #endif
TYPEDEF int wint_t; TYPEDEF unsigned wint_t;
TYPEDEF float float_t; TYPEDEF float float_t;
TYPEDEF double double_t; TYPEDEF double double_t;
......
...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list; ...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list;
#ifndef __cplusplus #ifndef __cplusplus
TYPEDEF long wchar_t; TYPEDEF long wchar_t;
#endif #endif
TYPEDEF int wint_t; TYPEDEF unsigned wint_t;
TYPEDEF float float_t; TYPEDEF float float_t;
TYPEDEF double double_t; TYPEDEF double double_t;
......
...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list; ...@@ -7,7 +7,7 @@ TYPEDEF __builtin_va_list __isoc_va_list;
#ifndef __cplusplus #ifndef __cplusplus
TYPEDEF int wchar_t; TYPEDEF int wchar_t;
#endif #endif
TYPEDEF int wint_t; TYPEDEF unsigned wint_t;
#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2 #if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2
TYPEDEF long double float_t; TYPEDEF long double float_t;
......
...@@ -78,8 +78,8 @@ typedef uint64_t uint_least64_t; ...@@ -78,8 +78,8 @@ typedef uint64_t uint_least64_t;
#define INTMAX_MAX INT64_MAX #define INTMAX_MAX INT64_MAX
#define UINTMAX_MAX UINT64_MAX #define UINTMAX_MAX UINT64_MAX
#define WINT_MIN INT32_MIN #define WINT_MIN 0
#define WINT_MAX INT32_MAX #define WINT_MAX UINT32_MAX
#if L'\0'-1 > 0 #if L'\0'-1 > 0
#define WCHAR_MAX (0xffffffffu+L'\0') #define WCHAR_MAX (0xffffffffu+L'\0')
......
...@@ -36,7 +36,7 @@ extern "C" { ...@@ -36,7 +36,7 @@ extern "C" {
#define NULL 0L #define NULL 0L
#undef WEOF #undef WEOF
#define WEOF (-1) #define WEOF 0xffffffffU
typedef struct __mbstate_t typedef struct __mbstate_t
{ {
......
...@@ -20,7 +20,7 @@ extern "C" { ...@@ -20,7 +20,7 @@ extern "C" {
typedef const int * wctrans_t; typedef const int * wctrans_t;
#undef WEOF #undef WEOF
#define WEOF (-1) #define WEOF 0xffffffffU
#undef iswdigit #undef iswdigit
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册