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" } */ 5 6 int global; 7 8 void __attribute__ ((noinline, noclone, used)) stuff(int i)9stuff (int i) 10 { 11 global = i; 12 } 13 hooray()14static void hooray () 15 { 16 stuff (1); 17 } 18 hiphip(void (* f)())19static void hiphip (void (*f)()) 20 { 21 stuff (2); 22 f (); 23 } 24 main(void)25int main (void) 26 { 27 hiphip (hooray); 28 return 0; 29 } 30 31 /* { dg-final { scan-ipa-dump "ipa-prop: Removed a reference" "inline" } } */ 32 /* { dg-final { scan-tree-dump-not "hooray" "optimized" } } */ 33