(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
ipa-clone-3.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -fdump-ipa-cp-details -fno-early-inlining --param ipa-cp-max-recursive-depth=8 --param ipa-cp-eval-threshold=1" } */
       3  
       4  struct V {
       5    int f0;
       6    int f1;
       7  };
       8  
       9  int data[100];
      10  
      11  int fn ();
      12  
      13  int recur_fn (struct V * __restrict v)
      14  {
      15    int i = v->f0;
      16    int j = v->f1;
      17    struct V t;
      18  
      19    if (j > 100)
      20      {
      21        fn ();
      22        return 1;
      23      }
      24  
      25    data[i] = i;
      26  
      27    t.f0 = i - 2;
      28    t.f1 = j + 1;
      29  
      30    recur_fn (&t);
      31  
      32    return i * j;
      33  }
      34  
      35  int main ()
      36  {
      37    struct V v;
      38  
      39    v.f0 = 1;
      40    v.f1 = 3;
      41    return recur_fn (&v);
      42  }
      43  
      44  /* { dg-final { scan-ipa-dump-times "Creating a specialized node of recur_fn/\[0-9\]*\\." 8 "cp" } } */