PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr56051.c
blob4ff6b9e267b858cd1f3d22de8425dc76ddd0c638
1 /* PR tree-optimization/56051 */
3 extern void abort (void);
5 int
6 main ()
8 unsigned char x1[1] = { 0 };
9 unsigned int s1 = __CHAR_BIT__;
10 int a1 = x1[0] < (unsigned char) (1 << s1);
11 unsigned char y1 = (unsigned char) (1 << s1);
12 int b1 = x1[0] < y1;
13 if (a1 != b1)
14 abort ();
15 #if __SIZEOF_LONG_LONG__ > __SIZEOF_INT__
16 unsigned long long x2[1] = { 2ULL << (sizeof (int) * __CHAR_BIT__) };
17 unsigned int s2 = sizeof (int) * __CHAR_BIT__ - 1;
18 int a2 = x2[0] >= (unsigned long long) (1 << s2);
19 unsigned long long y2 = 1 << s2;
20 int b2 = x2[0] >= y2;
21 if (a2 != b2)
22 abort ();
23 unsigned long long x3[1] = { 2ULL << (sizeof (int) * __CHAR_BIT__) };
24 unsigned int s3 = sizeof (int) * __CHAR_BIT__ - 1;
25 int a3 = x3[0] >= (unsigned long long) (1U << s3);
26 unsigned long long y3 = 1U << s3;
27 int b3 = x3[0] >= y3;
28 if (a3 != b3)
29 abort ();
30 #endif
31 return 0;