1extern void abort (void);
2
3int
4main ()
5{
6  int i, j;
7  unsigned long u, r1, r2;
8
9  i = -16;
10  j = 1;
11  u = i + j;
12
13  /* no sign extension upon shift */
14  r1 = u >> 1;
15  /* sign extension upon shift, but there shouldn't be */
16  r2 = ((unsigned long) (i + j)) >> 1;
17
18  if (r1 != r2)
19    abort ();
20
21  return 0;
22}
23