https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=8fbbc668a01db50c3735d396f6e021940f7b3834
commit 8fbbc668a01db50c3735d396f6e021940f7b3834 Author: Corinna Vinschen <[email protected]> AuthorDate: Wed Aug 2 16:50:23 2023 +0200 Commit: Corinna Vinschen <[email protected]> CommitDate: Wed Aug 2 16:56:24 2023 +0200 Cygwin: uchar.h: fix definition of uchar16_t and uchar32_t Per C++11, uchar16_t and uchar32_t are defined the same as uint_least16_t and uint_least32_t. Also, check for the C++ version to make sure that the types are not colliding with predefined c++ types. Fixes: 4f258c55e87f ("Cygwin: Add ISO C11 functions c16rtomb, c32rtomb, mbrtoc16, mbrtoc32.") Signed-off-by: Corinna Vinschen <[email protected]> Diff: --- winsup/cygwin/include/uchar.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/winsup/cygwin/include/uchar.h b/winsup/cygwin/include/uchar.h index 84020553700d..bf865ff16e7f 100644 --- a/winsup/cygwin/include/uchar.h +++ b/winsup/cygwin/include/uchar.h @@ -6,6 +6,11 @@ typedef __uint16_t char16_t; typedef __uint32_t char32_t; +/* C++11 already defines those types. */ +#if !defined (__cplusplus) || (__cplusplus - 0 < 201103L) +typedef __uint_least16_t char16_t; +typedef __uint_least32_t char32_t; +#endif __BEGIN_DECLS
