1 /* PR c/4308 2 This testcase failed because 0x8000000000000000 >> 0 3 was incorrectly folded into 0xffffffff00000000. */ 4 5 extern void abort (void); 6 extern void exit (int); 7 foo(void)8long long foo (void) 9 { 10 long long C = 1ULL << 63, X; 11 int Y = 32; 12 X = C >> (Y & 31); 13 return X; 14 } 15 main(void)16int main (void) 17 { 18 if (foo () != 1ULL << 63) 19 abort (); 20 exit (0); 21 } 22