https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125451
--- Comment #16 from Drea Pinski <pinskia at gcc dot gnu.org> --- (In reply to Thomas Wolff from comment #15) > I see that wchar.h has > int wcwidth (const wchar_t); > (which is different from the manual page). > The include file is identical on both systems. > > If gcc takes this as a short parameter as you indicate, why does gcc extend > the parameter value at all? I suspect it is due to some tuning flag that is set by default. sometimes using %ah rather than %eax/%rax will cause false dependencies. > And if it does so, beyond the width specified in the include file, it should > respect the unsignedness of the parameter type, I think. Why got this > changed in the first place? Because before GCC 16, GCC was actually doing a promotion to int (on accident due to defines) and that introduced so many differences between x86 and other targets and it was just fixed up to follow the ABI. > > I'll also report this observation to cygwin, anyway.
