1 /* { dg-do run } */
2 
3 typedef unsigned short u16;
4 typedef unsigned int u32;
5 typedef unsigned long long u64;
6 
7 u32 a, b, c, d;
8 
foo(u32 f,u32 g,u32 g2,u32 g3,u16 h,u16 i)9 u32 foo (u32 f, u32 g, u32 g2, u32 g3, u16 h, u16 i)
10 {
11   (void)g, (void)g2, (void)g3, (void)h;
12   d = __builtin_bswap64 (i);
13   __builtin_sub_overflow (0, d, &b);
14   __builtin_memset (&i, c, 2);
15   a = 0;
16   return b + f + i + c;
17 }
18 
main(void)19 int main (void)
20 {
21   u32 x = foo (0, 0, 0, 0, 0, 0);
22   asm ("" :: "r" (x));
23   return 0;
24 }
25