1 /* PR target/89434 */ 2 3 #if __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 && __CHAR_BIT__ == 8 4 long g = 0; 5 6 static inline unsigned long long foo(unsigned long long u)7foo (unsigned long long u) 8 { 9 unsigned x; 10 __builtin_mul_overflow (-1, g, &x); 11 u |= (unsigned) u < (unsigned short) x; 12 return x - u; 13 } 14 15 int main()16main () 17 { 18 unsigned long long x = foo (0x222222222ULL); 19 if (x != 0xfffffffddddddddeULL) 20 __builtin_abort (); 21 return 0; 22 } 23 #else 24 int main()25main () 26 { 27 return 0; 28 } 29 #endif 30