Sources Bugzilla – Bug 6779
remainder() wrongly gives a domain error for (NaN, 0)
Last modified: 2011-10-07 19:16:05 UTC
The posix reaminder() spec says: == If x or y is NaN, a NaN shall be returned. If x is infinite or y is 0 and the other is non-NaN, a domain error shall occur, and either a NaN (if supported), or an implementation-defined value shall be returned == On glibc 2.8, remainder(NaN, 0) gives a domain error (EDOM, FE_INVALID). As per the above spec, it should return a NaN without error.
Created attachment 2844 [details] test program Sample run showing problem: $ /tmp/mt_remainder nan 0 errno == EDOM fetestexcept() says: FE_INVALID remainder(nan,0.00000000000000000e+00)=nan EDOM FE_INVALID nan
Thanks, patch send to libc-alpha mailinglist.
I've checked in the patch.