1 /* Verify that simple indirect calls are inlined even without early
3 /* { dg-do compile } */
4 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining" } */
20 extern void non_existent(struct S *p, int);
24 static void hooray1 (struct S *p)
29 static void hiphip1 (struct S *p)
48 static void hooray2 (struct S *p)
53 static void hip2 (struct S *p)
58 static void hiphip2 (struct S *p)
75 static void hooray3 (struct S *p)
80 static void hip3 (struct S *p)
85 static __attribute__ ((flatten)) void hiphip3 (struct S *p)
102 static void hooray4 (struct S *p)
107 static void hiphip4 (struct S s)
126 static void hooray5 (struct S *p)
131 static void hip5 (struct S *p)
136 static void hiphip5 (struct U *u)
154 static void hooray6 (struct S *p)
159 static void hip6 (struct S *p)
164 static __attribute__ ((flatten)) void hiphip6 (struct U *u)
185 static void hooray7 (struct S *p)
190 static void hip7 (struct S *p)
196 static void hiphip7 (struct S *p)
214 /* { dg-final { scan-ipa-dump "hooray1\[^\\n\]*inline copy in test1" "inline" } } */
215 /* { dg-final { scan-ipa-dump "hooray2\[^\\n\]*inline copy in test2" "inline" } } */
216 /* { dg-final { scan-ipa-dump "hooray3\[^\\n\]*inline copy in test3" "inline" } } */
217 /* { dg-final { scan-ipa-dump "hooray4\[^\\n\]*inline copy in test4" "inline" { xfail { { hppa*-*-* } && { ! lp64 } } } } } */
218 /* { dg-final { scan-ipa-dump "hooray5\[^\\n\]*inline copy in test5" "inline" } } */
219 /* { dg-final { scan-ipa-dump "hooray6\[^\\n\]*inline copy in test6" "inline" } } */
220 /* { dg-final { scan-ipa-dump "hooray7\[^\\n\]*inline copy in test7" "inline" } } */
221 /* { dg-final { cleanup-ipa-dump "inline" } } */