| __attribute__ ((__noreturn__)) extern void fail (void); | |
| char x; | |
| /* This used to get stuck in an infinite loop in find_comparison_args | |
| when compiling this function for MIPS at -O2. */ | |
| void foo (const unsigned char y) | |
| { | |
| ((void) (__builtin_expect((!! y == y), 1) ? 0 : (fail (), 0))); | |
| x = ! y; | |
| } | |
| /* This used to similarly get stuck when compiling for PowerPC at -O2. */ | |
| int foo2 (int arg) | |
| { | |
| if (arg != !arg) | |
| fail (); | |
| if (arg) | |
| fail (); | |
| } |