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
6extern void abort (void);
7
8int bar (int k)
9{
10  return k+2;
11}
12
13int baz (int k)
14{
15  return k+1;
16}
17
18static int foo (int (*p)(int), int i)
19{
20  return p (i+1);
21}
22
23int (*g)(int) = baz;
24
25int 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}
34