/* { 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); /* { dg-warning "infinite recursion" } */ }