In this example
static inline int f (int x) { return x + 1; }
static inline int g (int x, inline int f (int x))
{ return 1 + f (x); }
int h (int x)
{ return g (x, f); }
is h supposed to optimize to return x + 2 or supposed to actually call
f. Here's what I get with current gcc mainline cvs -O2
f:
leal 1(%rdi), %eax
ret
h:
call f
incl %eax
ret
Is this a bug? If not, how to I get gcc to emit "return x + 2"?
Thanks,
Eliot
