This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [RFC Patch]: Implement remainder() as built-in function [PR fortran/24518]


On Mon, 23 Oct 2006, Richard Guenther wrote:

> I wonder how we want to deal with the errno mess in general here.  The C 
> standard actually most of the time allows setting errno but does not 
> require it (like for fmod - sqrt is an exception to this) and glibc for 
> example does never set errno in these cases.  I understand that the 
> ideal semantics of -fno-math-errno is to match the installed library, 
> but inserting library calls is costly and may not even be possible (like 
> for lrint, where a check for NaN is not possible).

In some cases, allowing errno not to be set is an incompatible quiet 
change in C99; in C90, if domain errors or overflow range errors occur, 
errno must be set (but in some cases it's not specified whether such 
errors occur, and of course this only applies to functions defined by 
C90).

If !flag_isoc99, this means that in some cases errno is required to be 
set.  If flag_isoc99, GCC and libc should cooperate to get the right 
setting of math_errhandling (with math_errhandling & MATH_ERRNO set if all 
translation units were compiled with errno setting enabled).

-- 
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]