| /* PR target/89434 */ | |
| #if __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 && __CHAR_BIT__ == 8 | |
| long g = 0; | |
| static inline unsigned long long | |
| foo (unsigned long long u) | |
| { | |
| unsigned x; | |
| __builtin_mul_overflow (-1, g, &x); | |
| u |= (unsigned) u < (unsigned short) x; | |
| return x - u; | |
| } | |
| int | |
| main () | |
| { | |
| unsigned long long x = foo (0x222222222ULL); | |
| if (x != 0xfffffffddddddddeULL) | |
| __builtin_abort (); | |
| return 0; | |
| } | |
| #else | |
| int | |
| main () | |
| { | |
| return 0; | |
| } | |
| #endif |