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