1  /* { dg-do run } */
       2  /* { dg-options "-fipa-pta" } */
       3  
       4  typedef unsigned long ulong;
       5  
       6  int __attribute__((noinline, noclone))
       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))
      13  f3 (int *p)
      14  {
      15    *p = f4(1, 2, 3, 4, 5);
      16  }
      17  
      18  void __attribute__((noinline, noclone))
      19  f2 ()
      20  {
      21    int unused;
      22    f3 (&unused);
      23  }
      24  
      25  void __attribute__((noinline, noclone))
      26  f1 (ulong e, ulong f)
      27  {
      28    if (e > 5 || f > 5) __builtin_abort();
      29    f2 ();
      30  }
      31  
      32  
      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