1 /* Verify that simple indirect calls are inlined even without early
2    inlining..  */
3 /* { dg-do compile } */
4 /* { dg-options "-O3 -c -fdump-ipa-inline -fno-early-inlining"  } */
5 
6 extern void non_existent(int);
7 extern void non_existent(int);
8 
hooray()9 static void hooray ()
10 {
11   non_existent (1);
12 }
13 
hiphip(void (* f)())14 static void  __attribute__ ((noinline)) hiphip (void (*f)())
15 {
16   f ();
17 }
18 
get_input(void)19 int __attribute__ ((noinline,noclone)) get_input(void)
20 {
21   return 1;
22 }
23 
main(int argc,int * argv[])24 int main (int argc, int *argv[])
25 {
26   int i;
27 
28   for (i = 0; i < get_input (); i++)
29     hiphip (hooray);
30   return 0;
31 }
32 
33 /* { dg-final { scan-ipa-dump "hooray\[^\\n\]*inline copy in hiphip.constprop"  "inline"  } } */
34