/* { dg-do run } */ typedef unsigned short u16; typedef unsigned int u32; typedef unsigned long long u64; u32 a, b, c, d; u32 foo (u32 f, u32 g, u32 g2, u32 g3, u16 h, u16 i) { (void)g, (void)g2, (void)g3, (void)h; d = __builtin_bswap64 (i); __builtin_sub_overflow (0, d, &b); __builtin_memset (&i, c, 2); a = 0; return b + f + i + c; } int main (void) { u32 x = foo (0, 0, 0, 0, 0, 0); asm ("" :: "r" (x)); return 0; }