| /* PR tree-optimization/56051 */ |
| |
| extern void abort (void); |
| |
| int |
| main () |
| { |
| unsigned char x1[1] = { 0 }; |
| unsigned int s1 = __CHAR_BIT__; |
| int a1 = x1[0] < (unsigned char) (1 << s1); |
| unsigned char y1 = (unsigned char) (1 << s1); |
| int b1 = x1[0] < y1; |
| if (a1 != b1) |
| abort (); |
| #if __SIZEOF_LONG_LONG__ > __SIZEOF_INT__ |
| unsigned long long x2[1] = { 2ULL << (sizeof (int) * __CHAR_BIT__) }; |
| unsigned int s2 = sizeof (int) * __CHAR_BIT__ - 1; |
| int a2 = x2[0] >= (unsigned long long) (1 << s2); |
| unsigned long long y2 = 1 << s2; |
| int b2 = x2[0] >= y2; |
| if (a2 != b2) |
| abort (); |
| unsigned long long x3[1] = { 2ULL << (sizeof (int) * __CHAR_BIT__) }; |
| unsigned int s3 = sizeof (int) * __CHAR_BIT__ - 1; |
| int a3 = x3[0] >= (unsigned long long) (1U << s3); |
| unsigned long long y3 = 1U << s3; |
| int b3 = x3[0] >= y3; |
| if (a3 != b3) |
| abort (); |
| #endif |
| return 0; |
| } |