tcc-65816/test/tests/20010717-1.c
2017-06-09 13:52:12 +02:00

23 lines
310 B
C

extern void abort (void);
int
main ()
{
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)
abort ();
return 0;
}