Created attachment 541903 [details]
Test program showing floating point exception
Description of problem:
On Fedora 16, with floating point trapping enabled, *except* for "underflow" and "inexact", exp(-1.0e40) will throw a Floating Point Exception.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Compile attached test programme (g++ test1.cpp)
2. Run program
Floating point exception.
The value 0 should be printed.
On Fedora 14 the test program gives the expected result "0" so this is a regression in Fedora 16.
At lines 35 and 40 of w_exp.c, libm uses the floating point variant "kernel_standard_f" rather than the double variant "kernel_standard".
The implementation of kernel_standard_f in k_standard.c just maps double to float (for arguments and return value). If kernel_standard_f is changed to to kernel_standard in both places, the test program runs through without problems.
Bug reported upstream. If/when the upstream maintainers fix this bug we will incorporate the fix as part of our regular Fedora development process.
FWIW, I went ahead and pulled the proposed upstream patch into rawhide and f17.
I'd really appreciate this in F16 if thats possible too.
I'm not likely to spin it. My time is very limited and my focus is much more on preparations for f17, particularly finding a couple pthread deadlocks that are affecting multiple packages.