1 /* Verify that indirect inlining can also remove references of the functions it
2 discovers calls for. */
3 /* { dg-do compile } */
4 /* { dg-options "-O3 -fno-early-inlining -fno-ipa-cp -fdump-ipa-inline -fdump-tree-optimized -fno-ipa-icf" } */
8 void __attribute__ ((noinline
, noclone
, used
))
14 int __attribute__ ((noinline
,noclone
)) get_input(void)
30 /* Some stuff to make the function bigger so that hip1_1 gets inlined
32 for (i
= 0; i
< get_input (); i
++)
64 /* Some stuff to make the function bigger so that hip2_2 gets inlined
66 for (i
= 0; i
< get_input (); i
++)
75 main (int argc
, int *argv
[])
79 for (i
= 0; i
< get_input (); i
++)
87 /* { dg-final { scan-ipa-dump-times "ipa-prop: Removed a reference" 2 "inline" } } */
88 /* { dg-final { scan-tree-dump-not "hooray" "optimized" } } */
89 /* { dg-final { cleanup-ipa-dump "inline" } } */
90 /* { dg-final { cleanup-tree-dump "optimized" } } */