bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Test results for m4-1.4.9b


From: Bruno Haible
Subject: Re: Test results for m4-1.4.9b
Date: Tue, 5 Jun 2007 01:06:38 +0200
User-agent: KMail/1.5.4

Hi Gary,

> That fixes test-frexpl.c on my ppc machine.

OK, I've committed the fix.

> the loop aborts in an assertion failure on the first iteration:
> 
> (gdb) run
> Starting program: /Users/gary/m4-1.4.9b/tests/test-frexpl
> 
> Breakpoint 1, main () at test-frexpl.c:160
> 160       for (i = 1, x = 1.01L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
> (gdb) n
> 162           int exp = -9999;
> (gdb)
> 163           long double mantissa = frexpl (x, &exp);
> (gdb)
> 164           ASSERT (exp == i);
> (gdb)
> 165           ASSERT (mantissa == 0.505L);
> (gdb) p mantissa
> $1 = 0.50499999999999989341858963598497212
> (gdb) p exp
> $2 = 1
> (gdb) p i
> $3 = 1
> (gdb) p x
> $4 = 1.0100000000000000088817841970012523
> (gdb) n
> test-frexpl.c:165: assertion failed
> 
> Program received signal SIGABRT, Aborted.
> 0x9004822c in kill ()

Hmm, both mantissa and x appear rounded to 'double' precision but in different
rounding directions. This is still not conclusive. Maybe gdb cannot print
the 'long double's correctly?

Can you insert printf %LA statements for mantissa and x, as well as for
1.01L and 0.505L, instead of relying on gdb? (You see, I don't trust gdb,
and I don't even trust the constant numbers.) Also, is the frexpl() function
from MacOS X or is it gnulib's? What we need in the end is a small testcase
program for the autoconf test.

Bruno





reply via email to

[Prev in Thread] Current Thread [Next in Thread]