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