/* 20010717-1.c from the execute part of the gcc torture tests. */ #include #ifdef __SDCC #pragma std_c99 #endif void testTortureExecute (void) { int i, j; unsigned long u, r1, r2; i = -16; j = 1; u = i + j; /* no sign extension upon shift */ r1 = u >> 1; /* sign extension upon shift, but there shouldn't be */ r2 = ((unsigned long) (i + j)) >> 1; if (r1 != r2) ASSERT (0); return; }