Re: BUG #13788: compile error in generic_msvc.h

From: Paul Moore <paul(dot)moore(at)centrify(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #13788: compile error in generic_msvc.h
Date: 2015-12-03 17:02:31
Message-ID: BN4PR07MB21318CFBCCED692610885141F10D0@BN4PR07MB2131.namprd07.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

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 had done it and found nothing.

The c++ code is simply a thin shim from native c to c#

-----Original Message-----
From: Andres Freund [mailto:andres(at)anarazel(dot)de]
Sent: Wednesday, December 2, 2015 8:50 AM
To: Paul Moore <paul(dot)moore(at)centrify(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>; pgsql-bugs(at)postgresql(dot)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 including the 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 necessarily compatible with C++ (doesn't call destructors to be called and such).

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2015-12-03 19:43:44 Re: BUG #13790: last row of limit/offset result produces duplicates
Previous Message tomek 2015-12-03 16:55:20 BUG #13793: Please implement IP_FREEBIND option