Re: BUG #13788: compile error in generic_msvc.h
От | Paul Moore |
---|---|
Тема | Re: BUG #13788: compile error in generic_msvc.h |
Дата | |
Msg-id | BN4PR07MB2131E7BF8BC8E8A443A5A0D3F1E90@BN4PR07MB2131.namprd07.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: BUG #13788: compile error in generic_msvc.h (Andres Freund <andres@anarazel.de>) |
Список | pgsql-bugs |
I put the cast in and it compiles with no complaint -----Original Message----- From: Andres Freund [mailto:andres@anarazel.de]=20 Sent: Thursday, December 10, 2015 7:14 AM To: Paul Moore <paul.moore@centrify.com> Cc: Tom Lane <tgl@sss.pgh.pa.us>; pgsql-bugs@postgresql.org Subject: Re: [BUGS] BUG #13788: compile error in generic_msvc.h Hi Paul, As I don't have access to msvc: Could you try what Tom suggested in http://= archives.postgresql.org/message-id/5176.1449005701%40sss.pgh.pa.us ? Regards, Andres On 2015-12-03 17:02:31 +0000, Paul Moore wrote: > Yes on extern "C". I have other stuff working >=20 > Really what I am trying to do is invoke c# code. I am going to need to ca= ll SPI. I tried to find out if anybody else had done it and found nothing. >=20 > The c++ code is simply a thin shim from native c to c# >=20 > -----Original Message----- > From: Andres Freund [mailto:andres@anarazel.de] > Sent: Wednesday, December 2, 2015 8:50 AM > To: Paul Moore <paul.moore@centrify.com> > Cc: Tom Lane <tgl@sss.pgh.pa.us>; pgsql-bugs@postgresql.org > Subject: Re: [BUGS] BUG #13788: compile error in generic_msvc.h >=20 > On 2015-12-02 16:13:07 +0000, Paul Moore wrote: > > The 32 bit functions are defined on unsigned types > >=20 > > From winbase.h > >=20 > > FORCEINLINE > > unsigned > > InterlockedCompareExchange( > > _Inout_ _Interlocked_operand_ unsigned volatile *Destination, > > _In_ unsigned Exchange, > > _In_ unsigned Comperand > > ) > > { > > return (unsigned) _InterlockedCompareExchange((volatile long*)=20 > > Destination, (long) Exchange, (long) Comperand); } > >=20 > > The cast fixes the 64 bit case. > >=20 > > Full disclosure, I am compiling as c++. I think that might be the=20 > > cause. I tried in a c project and did not get the same error >=20 > Given that win64 buildfarm members have happily been compiling this code = I suspect that's the cause. Are you including the headers with extern "C" o= r not? >=20 > You're using SPI directly from C++? You got to be *very* careful doing th= at - postgres uses longjmp which isn't necessarily compatible with C++ (doe= sn't call destructors to be called and such). >=20 >=20 > -- > Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make=20 > changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-bugs Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: