Exception when casting doubles to ints

John Tytgat John.Tytgat at aaug.net
Thu Jan 6 14:41:14 PST 2005


In message <BAY101-F254E3ED3F8DDFE11900C51F0930 at phx.gbl> you wrote:

> It appears that when a double that is larger than the maximum
> int is cast to an int a floating point exception occurs. On cygwin
> you do not get an exception, and as the code where I found the
> problem was in lua I suspect other linux/unix variations also do not
> raise an exception. Can anyone confirm the unix behaviour?
> 
> If this is the case should the RISC OS gcc match what unix does?

Actually I don't mind this being the default behaviour because it is
something pretty undefined what int value you would have if no exception
would be raised.

But I think your question is around the header fenv.h (cfr.
<URL:http://www.opengroup.org/onlinepubs/009695399/basedefs/fenv.h.html>
for more info).  I understand from it that the default floating point
exception behaviour is not specified but that you can change it with
limitations using the fe*() functions.  If your lua program is using
those fe*() and you think UnixLib is not behaving like the above mentioned
specification, feel free to let us know the details.

John.
-- 
John Tytgat, in his comfy chair at home                                 BASS
John.Tytgat at aaug.net                             ARM powered, RISC OS driven



More information about the gcc mailing list