Andrew Dunstan <andrew@dunslane.net> writes:
> Tom Lane wrote:
>> I've been able to reproduce this on one of my machines, and it's nasty.
> In that case I'm confused about why this code compiles on my machine:
What compiler are you using? I'm using gcc 2.95.3 (on the machine that
shows the failure), and I think Bruce is also using something less than
the latest. It's possible that more recent gcc's are able to figure out
that the reference to free_func should be interpreted as a parameter
name and not a typedef.
In fact, trying your test program fails here:
$ gcc -Wall zzz.c
zzz.c:8: parse error before `free_func'
zzz.c:8: parse error before `)'
$
so "compiler difference" definitely seems to be the answer.
regards, tom lane