PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr37924.c
blobec098ff5515a33bfef3fdd6a3784a9886df38f1f
1 /* PR c/37924 */
3 extern void abort (void);
5 signed char a;
6 unsigned char b;
8 int
9 test1 (void)
11 int c = -1;
12 return ((unsigned int) (a ^ c)) >> 9;
15 int
16 test2 (void)
18 int c = -1;
19 return ((unsigned int) (b ^ c)) >> 9;
22 int
23 main (void)
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;