This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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] |
On 10/31/2014 01:13 PM, Craig Howland wrote: > > On 10/31/2014 02:49 PM, Joel Sherrill wrote: >> Hi >> >> ... >> >> I have attached correct and incorrect test cases. I am hoping >> someone here can give me a clue as to where to look. I am >> wondering if this is an inconsistency across targets in the >> C library. I did file this as GCC PR63301 but it was quickly >> closed as invalid. But I think the inconsistent generation of >> warnings is a bug. > Not that this changes the behavior, but the test cases are labeled > backwards. After applying the wchar_t-to win_t correction that Myers > points out, the correct format is %lc (per C99), while %C is non-standard. Wrong. Per POSIX, %C is identical to C99's %lc: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html However, your examples are also doing it wrong. Re-read the %lc description: %c If an l (ell) qualifier is present, the wint_t argument shall be converted as if by an ls conversion specification with no precision and an argument that points to a two-element array of type wchar_t, the first element of which contains the wint_t argument to the ls conversion specification and the second element contains a null wide character. You weren't passing a NUL-terminated wint_t array: wchar_t wc= L'a'; printf("%C", wc); Correct usage would look more like: wint_t wc[2] = L"a"; printf("%C", wc); -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |