This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Fix wide char format specifier in libio/tst-bz24153.c.
- From: Stefan Liebler <stli at linux dot ibm dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 6 Feb 2019 09:26:44 +0100
- Subject: [PATCH] Fix wide char format specifier in libio/tst-bz24153.c.
Hi,
on big endian systems the test fails with:
tst-bz24153.c:88: numeric comparison failure
left: 1660944385 (0x63000001); from: ch
right: 99 (0x63); from: L'c'
tst-bz24153.c:90: numeric comparison failure
left: 1677721601 (0x64000001); from: ch
right: 100 (0x64); from: L'd'
error: 2 test failures
One 'char' ("%c") is stored to the pointer 'wchar_t *':
ch = 0x00000001 | 0x63000000
This patch is using "%lc" as format specifier to read a wchar_t.
Okay to commit?
Bye,
Stefan
ChangeLog:
* libio/tst-bz24153.c (wide): Use wide char format specifier.
commit 6e7024f01e6aa344dc560027bcc2bd6e0ee41e5b
Author: Stefan Liebler <stli@linux.ibm.com>
Date: Tue Feb 5 16:55:00 2019 +0100
Fix wide char format specifier in libio/tst-bz24153.c.
On big endian systems the test fails with:
tst-bz24153.c:88: numeric comparison failure
left: 1660944385 (0x63000001); from: ch
right: 99 (0x63); from: L'c'
tst-bz24153.c:90: numeric comparison failure
left: 1677721601 (0x64000001); from: ch
right: 100 (0x64); from: L'd'
error: 2 test failures
One 'char' ("%c") is stored to the 'wchar_t *':
ch = 0x00000001 | 0x63000000
This patch is using "%lc" as format specifier to read a wchar_t.
ChangeLog:
* libio/tst-bz24153.c (wide): Use wide char format specifier.
diff --git a/libio/tst-bz24153.c b/libio/tst-bz24153.c
index 85ad1415df..be0e6bfcf1 100644
--- a/libio/tst-bz24153.c
+++ b/libio/tst-bz24153.c
@@ -84,9 +84,9 @@ wide (const char *path)
TEST_COMPARE (getwchar (), L'a');
TEST_COMPARE (getwchar_unlocked (), L'b');
wchar_t ch = 1;
- TEST_COMPARE (wscanf (L"%c", &ch), 1);
+ TEST_COMPARE (wscanf (L"%lc", &ch), 1);
TEST_COMPARE (ch, L'c');
- TEST_COMPARE (call_vwscanf (L"%c", &ch), 1);
+ TEST_COMPARE (call_vwscanf (L"%lc", &ch), 1);
TEST_COMPARE (ch, L'd');
fclose (stdin);