This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: glibc-2.21 -- x86: ERANGE failures for exp10*, exp2* ,pow* and tgamma.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]