Divide by zero?
John.Tytgat at aaug.net
Sun Jan 2 11:14:50 PST 2005
In message <4d2709691asbellon at sbellon.de>
Stefan Bellon <sbellon at sbellon.de> wrote:
> I have just noticed that when compiling with Norcroft and then linking
> against UnixLib there does not happen a "Divide by zero". E.g.:
> #include <stdio.h>
> int main(void)
> int a = 5;
> a /= 0;
> printf("a = %i\n", a);
> This returns ...
> a = 0
> ... when compiled and linked against UnixLib but raises "Divide by
> zero" when compiled and linked against the SharedCLibrary.
> Am I missing something obvious?
Not really but this has been the case for a very long time.
I also noticed this during my last signal related changes in UnixLib
but when I saw that this was already the case for a long time, I didn't
bother to change it. But you're right, if SharedCLibrary does this, then
I think we should change UnixLib too. Basically the fix will be in
__rt_sdiv (and __rt_udiv) routines. Note that today a float/double division
by zero will raise. I'll see if I can do that together with the other fix
needed to let UnixLib compile with Norcorft.
Incidently, does someone know if C99 specifies something in this area ?
John Tytgat, in his comfy chair at home BASS
John.Tytgat at aaug.net ARM powered, RISC OS driven
More information about the gcc