Re: BUG #13788: compile error in generic_msvc.h
От | Paul Moore |
---|---|
Тема | Re: BUG #13788: compile error in generic_msvc.h |
Дата | |
Msg-id | BN4PR07MB2131DF8027DFBFD628475070F10E0@BN4PR07MB2131.namprd07.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: BUG #13788: compile error in generic_msvc.h (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
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*) Destinat= ion, (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 -----Original Message----- From: Tom Lane [mailto:tgl@sss.pgh.pa.us]=20 Sent: Tuesday, December 1, 2015 1:35 PM To: Paul Moore <paul.moore@centrify.com> Cc: pgsql-bugs@postgresql.org; Andres Freund <andres@anarazel.de> Subject: Re: [BUGS] BUG #13788: compile error in generic_msvc.h paul.moore@centrify.com writes: > Bug reference: 13788 > Logged by: paul moore > Email address: paul.moore@centrify.com > PostgreSQL version: 9.5beta1 > Operating system: win server 2012 > Description: =20 > vs 2015, compiling spi execq sample > vc complains about this > 1>c:\Program > Files\PostgreSQL\9.5\include\server\port/atomics/generic-msvc.h(91):=20 > error > C2664: 'LONG64 _InterlockedCompareExchange64(volatile LONG64 > *,LONG64,LONG64)': cannot convert argument 1 from 'volatile uint64 *'=20 > to 'volatile LONG64 *' > same for the add64 function a few lines later That's a bit weird. A perhaps plausible explanation would be that the comp= iler is unhappy about passing an unsigned argument to a signed parameter; b= ut if they've tightened it up like that, why no similar complaint for the 3= 2-bit versions just above these? Can you try inserting a cast to (volatile int64 *), just to see? regards, tom lane
В списке pgsql-bugs по дате отправления: