mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
Fix strtod test for values above maximum for IBM long double.
This commit is contained in:
parent
053406fa70
commit
ed8c2ecd21
@ -1,3 +1,10 @@
|
|||||||
|
2012-09-06 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* stdlib/gen-tst-strtod-round.c: Include <assert.h>.
|
||||||
|
(round_str): Handle values above the maximum for IBM long double
|
||||||
|
as inexact.
|
||||||
|
* stdlib/tst-strtod-round.c (tests): Regenerated.
|
||||||
|
|
||||||
2012-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
2012-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||||
|
|
||||||
* sysdeps/s390/s390-32/multiarch/Makefile: Remove -mzarch
|
* sysdeps/s390/s390-32/multiarch/Makefile: Remove -mzarch
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
#include <assert.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -65,7 +66,19 @@ round_str (const char *s, const char *suffix,
|
|||||||
mpfr_init (f);
|
mpfr_init (f);
|
||||||
int r = string_to_fp (f, s, MPFR_RNDD);
|
int r = string_to_fp (f, s, MPFR_RNDD);
|
||||||
if (need_exact)
|
if (need_exact)
|
||||||
mpfr_printf ("\t%s,\n", r ? "false" : "true");
|
{
|
||||||
|
assert (prec == 106 && emin == -1073 && emax == 1024);
|
||||||
|
/* The maximum value in IBM long double has discontiguous
|
||||||
|
mantissa bits. */
|
||||||
|
mpfr_t max_value;
|
||||||
|
mpfr_init2 (max_value, 107);
|
||||||
|
mpfr_set_str (max_value, "0x1.fffffffffffff7ffffffffffffcp+1023", 0,
|
||||||
|
MPFR_RNDN);
|
||||||
|
if (mpfr_cmpabs (f, max_value) > 0)
|
||||||
|
r = 1;
|
||||||
|
mpfr_printf ("\t%s,\n", r ? "false" : "true");
|
||||||
|
mpfr_clear (max_value);
|
||||||
|
}
|
||||||
print_fp (f, suffix, ",\n");
|
print_fp (f, suffix, ",\n");
|
||||||
string_to_fp (f, s, MPFR_RNDN);
|
string_to_fp (f, s, MPFR_RNDN);
|
||||||
print_fp (f, suffix, ",\n");
|
print_fp (f, suffix, ",\n");
|
||||||
|
@ -1927,7 +1927,7 @@ static const struct test tests[] = {
|
|||||||
0xf.ffffffffffffcp+1020L,
|
0xf.ffffffffffffcp+1020L,
|
||||||
0xf.ffffffffffffcp+1020L,
|
0xf.ffffffffffffcp+1020L,
|
||||||
0xf.ffffffffffffcp+1020L,
|
0xf.ffffffffffffcp+1020L,
|
||||||
true,
|
false,
|
||||||
0xf.ffffffffffffcp+1020L,
|
0xf.ffffffffffffcp+1020L,
|
||||||
0xf.ffffffffffffcp+1020L,
|
0xf.ffffffffffffcp+1020L,
|
||||||
0xf.ffffffffffffcp+1020L,
|
0xf.ffffffffffffcp+1020L,
|
||||||
@ -2032,7 +2032,7 @@ static const struct test tests[] = {
|
|||||||
-0xf.ffffffffffffcp+1020L,
|
-0xf.ffffffffffffcp+1020L,
|
||||||
-0xf.ffffffffffffcp+1020L,
|
-0xf.ffffffffffffcp+1020L,
|
||||||
-0xf.ffffffffffffcp+1020L,
|
-0xf.ffffffffffffcp+1020L,
|
||||||
true,
|
false,
|
||||||
-0xf.ffffffffffffcp+1020L,
|
-0xf.ffffffffffffcp+1020L,
|
||||||
-0xf.ffffffffffffcp+1020L,
|
-0xf.ffffffffffffcp+1020L,
|
||||||
-0xf.ffffffffffffcp+1020L,
|
-0xf.ffffffffffffcp+1020L,
|
||||||
|
Loading…
Reference in New Issue
Block a user