1 // { dg-do compile }
2 // { dg-options "-O -fdump-tree-optimized" }
3 
4 struct pf
5 {
pfpf6   inline pf(int(*x)(int)) : x(x) {}
7 
operatorpf8   inline int operator()(int a) const
9     {
10       return x(a);
11     }
12 
13   int (*x)(int);
14 };
15 
g(int x)16 inline int g(int x) { return x/x - 1; }
17 
main(int argc,char * argv[])18 int main(int argc, char* argv[])
19 {
20   pf f(g);
21   return f(3);
22 }
23 
24 // { dg-final { scan-tree-dump "return 0" "optimized" } }
25 // { dg-final { cleanup-tree-dump "optimized" } }
26