/* 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 |