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.
This commit is contained in:
Stefan Liebler 2019-02-06 12:29:02 +01:00
parent 94eeeec04b
commit b6d8a999cd
2 changed files with 6 additions and 2 deletions

View file

@ -1,3 +1,7 @@
2019-02-06 Stefan Liebler <stli@linux.ibm.com>
* libio/tst-bz24153.c (wide): Use wide char format specifier.
2019-02-06 Stefan Liebler <stli@linux.ibm.com>
* sysdeps/s390/wmemcmp-vx.S: Add strong alias to

View file

@ -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);