/* PR c/4308 | |
This testcase failed because 0x8000000000000000 >> 0 | |
was incorrectly folded into 0xffffffff00000000. */ | |
extern void abort (void); | |
extern void exit (int); | |
long long foo (void) | |
{ | |
long long C = 1ULL << 63, X; | |
int Y = 32; | |
X = C >> (Y & 31); | |
return X; | |
} | |
int main (void) | |
{ | |
if (foo () != 1ULL << 63) | |
abort (); | |
exit (0); | |
} |