/* PR tree-optimization/47148 */ static inline unsigned bar (unsigned x, unsigned y) { if (y >= 32) return x; else return x >> y; } static unsigned a = 1, b = 1; static inline void foo (unsigned char x, unsigned y) { if (!y) return; unsigned c = (0x7000U / (x - 2)) ^ a; unsigned d = bar (a, a); b &= ((a - d) && (a - 1)) + c; } int main (void) { foo (1, 1); foo (-1, 1); if (b && ((unsigned char) -1) == 255) __builtin_abort (); return 0; }