1 /* { dg-do run } */
2 /* { dg-options "-fipa-pta" } */
3 
4 typedef unsigned long ulong;
5 
6 int __attribute__((noinline, noclone))
f4(int a,int b,int c,int d,int e)7 f4 (int a, int b, int c, int d, int e)
8 {
9   return a + b + c + d + e;
10 }
11 
12 void __attribute__((noinline, noclone))
f3(int * p)13 f3 (int *p)
14 {
15   *p = f4(1, 2, 3, 4, 5);
16 }
17 
18 void __attribute__((noinline, noclone))
f2()19 f2 ()
20 {
21   int unused;
22   f3 (&unused);
23 }
24 
25 void __attribute__((noinline, noclone))
f1(ulong e,ulong f)26 f1 (ulong e, ulong f)
27 {
28   if (e > 5 || f > 5) __builtin_abort();
29   f2 ();
30 }
31 
32 
main()33 int main()
34 {
35  ulong e, f;
36  for (e = 5; e > 0; e--)
37    for (f = 5; f > 0; f--)
38      f1(e, f);
39  return 0;
40 }
41 
42