1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* { dg-require-effective-target int128 } */ /* { dg-additional-options "-O" } */ extern void bar(int); extern void baz(void); typedef unsigned u32; void foo(u32 u, __int128 i) { baz(); _Complex int c = i; c /= (u32)(__UINTPTR_TYPE__)foo; short s = (short)(__UINTPTR_TYPE__)foo; u /= (_Complex short)s; u32 r = u + c; bar(r); foo(0, 0); }