瀏覽代碼

don't define wchar_t on c++

it's a keyword in c++ (wtf). i'm not sure this is the cleanest
solution; it might be better to avoid ever defining __NEED_wchar_t on
c++. but in any case, this works for now.
Rich Felker 13 年之前
父節點
當前提交
1d3c276807
共有 3 個文件被更改,包括 6 次插入0 次删除
  1. 2 0
      arch/arm/bits/alltypes.h.sh
  2. 2 0
      arch/i386/bits/alltypes.h.sh
  3. 2 0
      arch/x86_64/bits/alltypes.h.sh

+ 2 - 0
arch/arm/bits/alltypes.h.sh

@@ -22,7 +22,9 @@ TYPEDEF long ptrdiff_t;
 
 TYPEDEF __builtin_va_list va_list;
 
+#ifndef __cplusplus
 TYPEDEF unsigned wchar_t;
+#endif
 TYPEDEF int wint_t;
 TYPEDEF long wctrans_t;
 TYPEDEF long wctype_t;

+ 2 - 0
arch/i386/bits/alltypes.h.sh

@@ -26,11 +26,13 @@ TYPEDEF __builtin_va_list va_list;
 TYPEDEF struct __va_list * va_list;
 #endif
 
+#ifndef __cplusplus
 #ifdef __WCHAR_TYPE__
 TYPEDEF __WCHAR_TYPE__ wchar_t;
 #else
 TYPEDEF long wchar_t;
 #endif
+#endif
 TYPEDEF long wint_t;
 TYPEDEF long wctrans_t;
 TYPEDEF long wctype_t;

+ 2 - 0
arch/x86_64/bits/alltypes.h.sh

@@ -21,7 +21,9 @@ TYPEDEF long ssize_t;
 TYPEDEF long ptrdiff_t;
 TYPEDEF __builtin_va_list va_list;
 
+#ifndef __cplusplus
 TYPEDEF int wchar_t;
+#endif
 TYPEDEF int wint_t;
 TYPEDEF int wctrans_t;
 TYPEDEF int wctype_t;