1 /* { dg-do compile } */
2 /* { dg-options "-O -finline-small-functions --param early-inlining-insns=0 -fdump-tree-einline" } */
3 
4 int foo0();
bar0()5 void bar0() { foo0(); }
foobar0()6 void foobar0() { bar0(); }
7 
8 void foo1();
bar1()9 void bar1() { foo1(); }
foobar1()10 void foobar1() { bar1(); }
11 
12 #if 0
13 int foo2();
14 int bar2() { return foo2(); }
15 /* The size estimate fails to see that inlining the call statement in bar2
16    will make its lhs dead.  */
17 void foobar2() { bar2(); }
18 #endif
19 
20 int foo3();
bar3()21 int bar3() { return foo3(); }
foobar3()22 int foobar3() { return bar3(); }
23 
bar4()24 int bar4() { return 0; }
foobar4()25 void foobar4() { bar4(); }
26 
bar5()27 int bar5() { return 0; }
foobar5()28 int foobar5() { return bar5(); }
29 
30 /* { dg-final { scan-tree-dump-times "Inlining" 5 "einline" } } */
31