Re: _isnan() on Windows

Andrew Dunstan <andrew.dunstan@2ndquadrant.com>

From: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael@paquier.xyz>, Alvaro Herrera <alvherre@2ndquadrant.com>, Emre Hasegeli <emre@hasegeli.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Thomas Munro <thomas.munro@enterprisedb.com>, Andres Freund <andres@anarazel.de>
Date: 2018-07-12T15:28:46Z
Lists: pgsql-hackers

On 07/12/2018 10:38 AM, Tom Lane wrote:
> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>> On 07/12/2018 10:20 AM, Tom Lane wrote:
>>> bowerbird and hamerkop have some gripes like this:
>>>
>>> bowerbird     | c:\perl64\lib\core\win32.h(218): warning C4005: 'isnan' : macro redefinition (src/pl/plperl/SPI.c) [G:\prog\bf\root\HEAD\pgsql.build\plperl.vcxproj]
>> We actually undef a bunch of things in plperl.h to keep the compiler
>> quiet. Maybe we need to add this to the list?
> Perhaps.  But how do we tell the platforms where we should do that
> from the ones where we shouldn't?
>
> 			

In the _MSCVER section:

#ifdef isnan
#undef isnan
#endif

By inspection the perl header is just defining it to _isnan, for every 
MSC version.

cheers

andrew

-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Silence MSVC warnings about redefinition of isnan

  2. Rethink how to get float.h in old Windows API for isnan/isinf