1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fdump-ipa-inline-details -fno-early-inlining -fno-ipa-sra -fno-ipa-cp" } */
3 
4 typedef struct S
5 {
6   int add_offset;
7   int (*call)(int);
8 } S;
9 
10 static int
bar(const S f,int x)11 bar (const S f, int x)
12 {
13   x = f.call (x);
14   return x;
15 }
16 
17 static int
thisisthetarget(int x)18 thisisthetarget (int x)
19 {
20   return x * x;
21 }
22 
23 int
outerfunction(int x)24 outerfunction (int x)
25 {
26   return bar ((S){16, thisisthetarget}, x);
27 }
28 
29 
30 /* { dg-final { scan-ipa-dump "thisisthetarget\[^\\n\]*inline copy in outerfunction"  "inline"  } } */
31