(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
iinline-3.c
       1  /* Verify that call declarations are not redirected according to indirect
       2     inlining edges too early.  */
       3  /* { dg-do run } */
       4  /* { dg-options "-O3 -fno-early-inlining"  } */
       5  
       6  extern void abort (void);
       7  
       8  int bar (int k)
       9  {
      10    return k+2;
      11  }
      12  
      13  int baz (int k)
      14  {
      15    return k+1;
      16  }
      17  
      18  static int foo (int (*p)(int), int i)
      19  {
      20    return p (i+1);
      21  }
      22  
      23  int (*g)(int) = baz;
      24  
      25  int main (int argc, char *argv[])
      26  {
      27    if (foo (bar, 0) != 3)
      28      abort ();
      29    if (foo (g, 1) != 3)
      30      abort ();
      31  
      32    return 0;
      33  }