1 /* { dg-do compile } */ 2 /* { dg-options "-O -finline-small-functions --param early-inlining-insns=0 -fdump-tree-einline-optimized" } */ 3 4 int foo0(); bar0()5void bar0() { foo0(); } foobar0()6void foobar0() { bar0(); } 7 8 void foo1(); bar1()9void bar1() { foo1(); } foobar1()10void 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()21int bar3() { return foo3(); } foobar3()22int foobar3() { return bar3(); } 23 bar4()24int bar4() { return 0; } foobar4()25void foobar4() { bar4(); } 26 bar5()27int bar5() { return 0; } foobar5()28int foobar5() { return bar5(); } 29 30 /* { dg-final { scan-tree-dump-times "Inlining" 5 "einline" } } */ 31