glibc-2.21 -- x86: ERANGE failures for exp10*, exp2* ,pow* and tgamma.
Joseph Myers
joseph@codesourcery.com
Sat Jan 24 19:09:00 GMT 2015
On Sat, 24 Jan 2015, Carlos O'Donell wrote:
> Joseph,
>
> The 32-bit x86 builds fail test-float for me with ERANGE failures
> in exp10*, exp2*, pow* and tgamma tests.
>
> You can see the test-float.out output here under x86 (32-bit, Linux):
> https://sourceware.org/glibc/wiki/Release/2.21
>
> Before I investigate I wanted to know if you had any thoughts about
> the source of this failure?
I haven't seen those failures, and there haven't been many libm changes in
2.21.
One theoretically possible cause is functions returning values with excess
range and precision in them, and the wrappers math/w_*.c not removing the
excess prevision for the comparison with 0 that determines whether to set
errno (or to call __kernel_standard_f to do so). Such excess precision
returns are the first issue listed at
<https://sourceware.org/glibc/wiki/Development_Todo/Master#libm_itself>,
but I hadn't seen them cause test failures. (Whether they are a standards
conformance issue is unclear; ISO C requires return statements to remove
excess range and precision, but there is no requirement for library
functions to behave as if written in ISO C, hence the statement that
"There is a sequence point immediately before a library function returns."
which would not otherwise be needed.)
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list