@node towupper
@subsection @code{towupper}
@findex towupper

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/towupper.html}

Gnulib module: wctype-h
@mindex wctype-h

Portability problems fixed by Gnulib:
@itemize
@item
This function returns values of which the upper 16 bits are incorrect
on some platforms:
mingw.
@item
This function cannot be called from plain inline or extern inline functions
on some platforms:
macOS 10.8.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@mindex c32toupper
However, the Gnulib function @code{c32toupper}, provided by Gnulib module
@code{c32toupper}, operates on 32-bit wide characters and therefore does not
have this limitation.
@item
On native Windows, in an UTF-8 locale, this function does not even do
the simple expected mappings, such as from 0x00E9 to 0x00C9.
@item
This function returns wrong values even for the ASCII characters
in a zh_CN.GB18030 locale on some platforms:
@c https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=57339
NetBSD 10.0.
@end itemize
