1 /* PR c/37924 */
2 
3 extern void abort (void);
4 
5 signed char a;
6 unsigned char b;
7 
8 int
test1(void)9 test1 (void)
10 {
11   int c = -1;
12   return ((unsigned int) (a ^ c)) >> 9;
13 }
14 
15 int
test2(void)16 test2 (void)
17 {
18   int c = -1;
19   return ((unsigned int) (b ^ c)) >> 9;
20 }
21 
22 int
main(void)23 main (void)
24 {
25   a = 0;
26   if (test1 () != (-1U >> 9))
27     abort ();
28   a = 0x40;
29   if (test1 () != (-1U >> 9))
30     abort ();
31   a = 0x80;
32   if (test1 () != (a < 0) ? 0 : (-1U >> 9))
33     abort ();
34   a = 0xff;
35   if (test1 () != (a < 0) ? 0 : (-1U >> 9))
36     abort ();
37   b = 0;
38   if (test2 () != (-1U >> 9))
39     abort ();
40   b = 0x40;
41   if (test2 () != (-1U >> 9))
42     abort ();
43   b = 0x80;
44   if (test2 () != (-1U >> 9))
45     abort ();
46   b = 0xff;
47   if (test2 () != (-1U >> 9))
48     abort ();
49   return 0;
50 }
51