https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61876
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|UNCONFIRMED |NEW Last reconfirmed| |2014-07-23 Ever confirmed|0 |1 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Interestingly my manual page says ERRORS See math_error(7) for information on how to determine whether an error has occurred when calling these functions. The following errors can occur: Domain error: x is a NaN or infinite, or the rounded value is too large An invalid floating-point exception (FE_INVALID) is raised. These functions do not set errno. But C99 specifies only that the functions may raise a 'range error' (as opposed to a domain error). That said - 'errno' handling is a tricky area... Confirmed. The fix is to properly guard the transform, calling a function that the may set errno is wrong-code.