Re: BUG #13788: compile error in generic_msvc.h
От | Andres Freund |
---|---|
Тема | Re: BUG #13788: compile error in generic_msvc.h |
Дата | |
Msg-id | 20151210151403.GB2551@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: BUG #13788: compile error in generic_msvc.h (Paul Moore <paul.moore@centrify.com>) |
Ответы |
Re: BUG #13788: compile error in generic_msvc.h
|
Список | pgsql-bugs |
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 > > Really what I am trying to do is invoke c# code. I am going to need to call SPI. I tried to find out if anybody else haddone it and found nothing. > > The c++ code is simply a thin shim from native c to c# > > -----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 > > On 2015-12-02 16:13:07 +0000, Paul Moore wrote: > > The 32 bit functions are defined on unsigned types > > > > From winbase.h > > > > FORCEINLINE > > unsigned > > InterlockedCompareExchange( > > _Inout_ _Interlocked_operand_ unsigned volatile *Destination, > > _In_ unsigned Exchange, > > _In_ unsigned Comperand > > ) > > { > > return (unsigned) _InterlockedCompareExchange((volatile long*) > > Destination, (long) Exchange, (long) Comperand); } > > > > The cast fixes the 64 bit case. > > > > Full disclosure, I am compiling as c++. I think that might be the > > cause. I tried in a c project and did not get the same error > > Given that win64 buildfarm members have happily been compiling this code I suspect that's the cause. Are you includingthe headers with extern "C" or not? > > You're using SPI directly from C++? You got to be *very* careful doing that - postgres uses longjmp which isn't necessarilycompatible with C++ (doesn't call destructors to be called and such). > > > -- > Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-bugs Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: