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" } */
5 /* { dg-add-options bind_pic_locally } */
7 extern void non_existent (const char *, int);
15 String (const char *d) : data(d)
18 int funcOne (int delim) const;
19 int printStuffTwice (int delim) const;
23 int String::funcOne (int delim) const
26 for (i = 0; i < delim; i++)
27 non_existent(data, i);
34 int docalling (int c, int (String::* f)(int delim) const)
36 String S ("muhehehe");
46 int __attribute__ ((noinline,noclone)) get_input (void)
51 int main (int argc, char *argv[])
55 i += docalling (get_input (), &String::funcOne);
56 non_existent ("done", i);
60 /* { dg-final { scan-ipa-dump "String::funcOne\[^\\n\]*inline copy in int main" "inline" } } */
61 /* { dg-final { cleanup-ipa-dump "inline" } } */