bug-gnulib
[Top][All Lists]
Advanced

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

Re: computing long double NaN on Irix 6.5


From: Bruno Haible
Subject: Re: computing long double NaN on Irix 6.5
Date: Fri, 27 Feb 2009 14:22:54 +0100
User-agent: KMail/1.9.9

Hi Eric,

> Before the patch, gcc gave 9 of 16 tests failing on assertions, all
> dealing with NaN, when I ran:
> 
> gnulib-tool --with-tests --test isfinite isnan ceill floorl frexpl isnanl
> ldexpl roundl truncl
> 
> After the patch

Nice improvement!

>  2 tests still fail

For me:

  - with CC="cc -O", all tests pass.

  - with CC="gcc", a gcc 2.95.2 I get this failure

test-floorl.c:82: assertion failed
/bin/sh[9]: 255782 Abort(coredump)
FAIL: test-floorl

    but this is due to a gcc bug: If floorl(-0.7L) is executed before
    floorl(-1.0L), and both calls are compiled by gcc - regardless whether
    in the same function, in different functions, or even in different 
compilation
    units -, then the floorl(-1.0L) call returns -2L instead of -1L. If at 
least one
    of the calls is in a compilation unit compiled by cc, no problem.

> Meanwhile, while running the tests, I noticed:
> 
> checking whether HUGE_VAL works... yes
> checking whether roundl is declared... no
> checking whether ceill is declared... (cached) yes
> checking whether floorl is declared... (cached) yes
> (cached) (cached) checking for signbit macro... no
> checking for signbit compiler built-ins... no

This comes from the gl_FUNC_FLOORL_LIBS and gl_FUNC_CEILL_LIBS macros, which are
invoked by gl_FUNC_ROUNDL. Each of them contains an AC_CACHE_VAL invocation that
is not wrapped in AC_MSG_CHECKING.

> Ouch.  That double (cached) at the beginning of a line means that we are
> doing one AC_CACHE_CHECK inside the body of another, and that it is likely
> that 'configure -C' will get things wrong on a second run.

'configure -C' does not mishandle AC_CACHE_VAL just because there is no AC_MSG_*
around it?

Bruno




reply via email to

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