[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Signedness issue in utf-8 code?

masarati@aero.polimi.it writes:
> That code is only in use when sizeof(wchar_t) >= 4.  The C library
> standard mandates wchar_t to be integer, thus signed.  If I promote
> 0x80000000 to 0x80000000LL, when sizeof(wchar_t) == 4, like in my case,
> the test will always be true, and the compiler will complain about the
> test always being true.  Everything would be fine otherwise.

Now C90 compilers get to warn about long long instead.
With the new #if SIZEOF_WCHAR_T > 4, "if(wchar < (wchar_t)0x80000000UL)"
should be sufficient.