Re: Why does load_external_function() return PGFunction? - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Why does load_external_function() return PGFunction?
Date
Msg-id 20180510204559.u2xlkp2oczxurndm@alap3.anarazel.de
Whole thread Raw
In response to Re: Why does load_external_function() return PGFunction?  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Why does load_external_function() return PGFunction?
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Why does load_external_function() return PGFunction?
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Cutting initdb's runtime (Perl question embedded)