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
