Expectations for 0/0
Paulo Matos
pmatos@broadcom.com
Tue Jul 28 15:41:00 GMT 2015
Hi,
What are the expectations for the 0/0 division?
Test execute.exp=arith-rand.c generates two integers, both being 0 and one of the testing blocks is:
{ signed int xx = x, yy = y, r1, r2;
if ((unsigned int) xx << 1 == 0 && yy == -1)
continue;
r1 = xx / yy;
r2 = xx % yy;
if (ABS (r2) >= (unsigned int) ABS (yy) || (signed int) (r1 * yy + r2) != xx)
abort ();
}
Our routine returns :
R1: 0xffffffff
R2: 0xf
Then it aborts because ABS (r2) >= (unsigned int) ABS (yy).
While I understand the results from our division routine might be peculiar, this division is also undefined.
The block skips the test for ((unsigned int) xx << 1 == 0 && yy == -1), should we skip it if they're both zero as well? If not, what do you expect to get from 0/0 and 0%0?
Regards,
Paulo Matos
More information about the Gcc
mailing list