Re: Why does load_external_function() return PGFunction?
От | Andres Freund |
---|---|
Тема | Re: Why does load_external_function() return PGFunction? |
Дата | |
Msg-id | 20180326201641.lwny3mb7girclach@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: Why does load_external_function() return PGFunction? (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: Why does load_external_function() return PGFunction?
|
Список | pgsql-hackers |
On 2018-03-26 11:31:36 -0700, Andres Freund wrote: > On 2018-03-26 11:14:03 -0400, Robert Haas wrote: > > On Sat, Mar 24, 2018 at 4:33 PM, Andres Freund <andres@anarazel.de> wrote: > > > I don't think it really changes the need, but it's worthwhile to note > > > that gcc-8 warns about this now: > > > /home/andres/src/postgresql/src/backend/postmaster/bgworker.c: In function ‘LookupBackgroundWorkerFunction’: > > > /home/andres/src/postgresql/src/backend/postmaster/bgworker.c:1246:9: warning: cast between incompatible function typesfrom ‘PGFunction’ {aka ‘long unsigned int (*)(struct FunctionCallInfoData *)’} to ‘void (*)(Datum)’ {aka ‘void (*)(longunsigned int)’} [-Wcast-function-type] > > > return (bgworker_main_type) > > > > That's probably going to mean we need, or at least want, to do > > something about this at some point. Warning-free compiles are > > desirable. > > Right. We can suppress those if we want, either by adding another cast, > or by adding -Wno-cast-function-type. The latter wouldn't be entirely a > bad idea, it seems to be a warning of very limited benefit. 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. - Andres
В списке pgsql-hackers по дате отправления: