mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Fix up long double fphex.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2012-03-06 Marek Polacek <polacek@redhat.com>
|
||||||
|
|
||||||
|
[BZ #13726]
|
||||||
|
* sysdeps/ieee754/ldbl-96/printf_fphex.c: Adjust position of wnumstr.
|
||||||
|
* sysdeps/x86_64/fpu/printf_fphex.c: Likewise.
|
||||||
|
* stdio-common/Makefile (tests): Add tst-long-dbl-fphex.
|
||||||
|
* stdio-common/tst-long-dbl-fphex.c: New file.
|
||||||
|
|
||||||
2012-03-06 David S. Miller <davem@davemloft.net>
|
2012-03-06 David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
|
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
|
||||||
|
4
NEWS
4
NEWS
@ -13,8 +13,8 @@ Version 2.16
|
|||||||
5077, 5461, 5805, 5993, 6884, 6907, 9739, 9902, 10110, 10135, 10140,
|
5077, 5461, 5805, 5993, 6884, 6907, 9739, 9902, 10110, 10135, 10140,
|
||||||
10210, 11174, 11322, 11365, 11494, 12047, 13058, 13525, 13526, 13527,
|
10210, 11174, 11322, 11365, 11494, 12047, 13058, 13525, 13526, 13527,
|
||||||
13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552, 13553,
|
13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552, 13553,
|
||||||
13555, 13559, 13583, 13618, 13637, 13656, 13695, 13704, 13706, 13738,
|
13555, 13559, 13583, 13618, 13637, 13656, 13695, 13704, 13706, 13726,
|
||||||
13786, 13792
|
13738, 13786, 13792
|
||||||
|
|
||||||
* ISO C11 support:
|
* ISO C11 support:
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
|
|||||||
tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
|
tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
|
||||||
bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
|
bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
|
||||||
scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
|
scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
|
||||||
bug-vfprintf-nargs
|
bug-vfprintf-nargs tst-long-dbl-fphex
|
||||||
|
|
||||||
test-srcs = tst-unbputc tst-printf
|
test-srcs = tst-unbputc tst-printf
|
||||||
|
|
||||||
|
38
stdio-common/tst-long-dbl-fphex.c
Normal file
38
stdio-common/tst-long-dbl-fphex.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/* This file is part of the GNU C Library.
|
||||||
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
Contributed by Marek Polacek <polacek@redhat.com>, 2012.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include <wchar.h>
|
||||||
|
|
||||||
|
/* Prototype for our test function. */
|
||||||
|
static int do_test (void);
|
||||||
|
|
||||||
|
static int
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
const long double x = 24.5;
|
||||||
|
wchar_t a[16 * sizeof (wchar_t)];
|
||||||
|
swprintf (a, 16 * sizeof (wchar_t), L"%La\n", x);
|
||||||
|
wchar_t A[16 * sizeof (wchar_t)];
|
||||||
|
swprintf (A, 16 * sizeof (wchar_t), L"%LA\n", x);
|
||||||
|
|
||||||
|
return (wmemcmp (a, L"0xc.4p+1", 8) != 0
|
||||||
|
|| wmemcmp (A, L"0XC.4P+1", 8) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TEST_FUNCTION do_test ()
|
||||||
|
#include "../test-skeleton.c"
|
@ -1,5 +1,5 @@
|
|||||||
/* Print floating point number in hexadecimal notation according to ISO C99.
|
/* Print floating point number in hexadecimal notation according to ISO C99.
|
||||||
Copyright (C) 1997, 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -58,6 +58,7 @@ do { \
|
|||||||
\
|
\
|
||||||
/* We use a full nibble for the leading digit. */ \
|
/* We use a full nibble for the leading digit. */ \
|
||||||
leading = *numstr++; \
|
leading = *numstr++; \
|
||||||
|
wnumstr++; \
|
||||||
\
|
\
|
||||||
/* We have 3 bits from the mantissa in the leading nibble. \
|
/* We have 3 bits from the mantissa in the leading nibble. \
|
||||||
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
|
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Print floating point number in hexadecimal notation according to ISO C99.
|
/* Print floating point number in hexadecimal notation according to ISO C99.
|
||||||
Copyright (C) 1997,1998,1999,2000,2001,2005 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -57,6 +57,7 @@ do { \
|
|||||||
\
|
\
|
||||||
/* We use a full nibble for the leading digit. */ \
|
/* We use a full nibble for the leading digit. */ \
|
||||||
leading = *numstr++; \
|
leading = *numstr++; \
|
||||||
|
wnumstr++; \
|
||||||
\
|
\
|
||||||
/* We have 3 bits from the mantissa in the leading nibble. \
|
/* We have 3 bits from the mantissa in the leading nibble. \
|
||||||
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
|
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
|
||||||
|
Reference in New Issue
Block a user