Bug 760935
Summary: | Bogus FPE on underflow for exp(double) | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Roderick Johnstone <rmj> | ||||
Component: | glibc | Assignee: | Jeff Law <law> | ||||
Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 16 | CC: | fweimer, jakub, jeremy, law, schwab | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2012-02-17 21:10:38 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Bug reported upstream. If/when the upstream maintainers fix this bug we will incorporate the fix as part of our regular Fedora development process. http://sourceware.org/bugzilla/show_bug.cgi?id=13705 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. |
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): glibc-2.14.90-19.x86_64 How reproducible: Every time. Steps to Reproduce: 1. Compile attached test programme (g++ test1.cpp) 2. Run program 3. Actual results: Floating point exception. Expected results: The value 0 should be printed. Additional info: 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.