1/* PR tree-optimization/56051 */
2
3extern void abort (void);
4
5int
6main ()
7{
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;
32}
33