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