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 }