1 extern void abort (void);
2 
3 int
main()4 main ()
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