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