This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Signedness of wchar_t and wint_t leads to problems with gcc -Wsign-conversion


On 11/21/2016 02:01 PM, Andreas Schwab wrote:
> On Nov 21 2016, "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com> wrote:
> 
>> So, I'm not quite clear on the point that you are making in your
>> second point. Given code such as:
>>
>>     wchar_t w;
>>     ...
>>     if (iswlower((wint_t) w) ....
>>
>> Do you mean that the standards are saying that casting to wint_t here
>> is guaranteed to be correct? I can't see the line of reasoning that
>> leads there.
> 
> Any valid value of wchar_t is representable by wint_t.  I cannot find
> any more convincing argument.

Yes, but is a sign-extended wchar_t a valid value?

To put things another way, why is this scenario different from
the islower() example, where the case to '(unsigned char)' is
needed in portable code? I'm being dense about something, I guess.

Cheers,

Michael



-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]