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>
|
||||
|
||||
* sysdeps/s390/s390-32/multiarch/Makefile: Remove -mzarch
|
||||
|
@ -18,6 +18,7 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include <assert.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -65,7 +66,19 @@ round_str (const char *s, const char *suffix,
|
||||
mpfr_init (f);
|
||||
int r = string_to_fp (f, s, MPFR_RNDD);
|
||||
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");
|
||||
string_to_fp (f, s, MPFR_RNDN);
|
||||
print_fp (f, suffix, ",\n");
|
||||
|
@ -1927,7 +1927,7 @@ static const struct test tests[] = {
|
||||
0xf.ffffffffffffcp+1020L,
|
||||
0xf.ffffffffffffcp+1020L,
|
||||
0xf.ffffffffffffcp+1020L,
|
||||
true,
|
||||
false,
|
||||
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,
|
||||
true,
|
||||
false,
|
||||
-0xf.ffffffffffffcp+1020L,
|
||||
-0xf.ffffffffffffcp+1020L,
|
||||
-0xf.ffffffffffffcp+1020L,
|
||||
|
Loading…
Reference in New Issue
Block a user