On 2018-05-10 16:41:53 -0400, Robert Haas wrote:
> On Mon, Mar 26, 2018 at 4:16 PM, Andres Freund <andres@anarazel.de> wrote:
> > I dug up a thread about the introduction of the warning:
> > https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00423.html
> >
> > Sounds like we should add something like
> > typedef void (*GenericFuncPtr) (void);
> > or such? Similar to what Tom proposed upthread.
>
> His proposal was void (*)() rather than void (*)(void). I see that
> the email to which you linked expects the latter, but I guess I would
> have expected the former to be an intentional statement that we don't
> know what the parameter list is. My expectations may be wrong,
> though, or just irrelevant.
Possible. But IIRC the parameter-unknown form isn't valid C++ and Peter
Eisentraut has done a good chunk of work to make it possible to compile
postgres as that. We shouldn't make his job harder. IMO the important
part isn't that the parameters fit exactly - we'll have to cast for the
return type anyway - but that it's declared as a pointer-to-function for
the hyptothetical supported platform that has different pointers to
functions than to other objects.
Greetings,
Andres Freund