stdlib: map wchar_t to UInt16 on Windows

This is an ABI breaking change for Windows.  `WCHAR` on Windows is
mapped to `short` (`-fshort-wchar` makes it `unsigned short`).  When C++
interop is enabled, `WCHAR` will be mapped to `wchar_t` which is then
mapped to `short` (or `unsigned short` if `-fshort-wchar` is specified).
Correct the mapping type to get the desired behaviour.
This commit is contained in:
Saleem Abdulrasool
2023-10-09 20:02:48 -07:00
committed by GitHub
parent 879ffde591
commit d61b8855e9
8 changed files with 46 additions and 4 deletions

View File

@@ -0,0 +1,6 @@
#if !defined(__cplusplus)
typedef short wchar_t;
#endif
typedef wchar_t WCHAR;
#define UNICODE_NULL ((WCHAR)0)