On Sun, Jun 3, 2018 at 12:58 PM, Emre Hasegeli <e...@hasegeli.com> wrote: > Rebased versions are attached.
Hi Emre, This produces build errors on Windows[1][2]: C:\projects\postgresql\src\include\utils/float.h(136): warning C4013: '_fpclass' undefined; assuming extern returning int [C:\projects\postgresql\postgres.vcxproj] C:\projects\postgresql\src\include\utils/float.h(297): warning C4013: '_isnan' undefined; assuming extern returning int [C:\projects\postgresql\postgres.vcxproj] C:\projects\postgresql\src\include\utils/float.h(136): error C2065: '_FPCLASS_PINF' : undeclared identifier [C:\projects\postgresql\postgres.vcxproj] C:\projects\postgresql\src\include\utils/float.h(136): error C2065: '_FPCLASS_NINF' : undeclared identifier [C:\projects\postgresql\postgres.vcxproj] 2778 This is apparently coming from the expansion of the following macros from src/include/port/win32_port.h: #if (_MSC_VER < 1800) #define isinf(x) ((_fpclass(x) == _FPCLASS_PINF) || (_fpclass(x) == _FPCLASS_NINF)) #define isnan(x) _isnan(x) #endif Those underscore-prefixed names are defined in Microsoft's <float.h>[3][4]. So now I'm wondering if win32_port.h needs to #include <float.h> if (_MSC_VER < 1800). [1] http://cfbot.cputube.org/emre-hasegeli.html [2] https://ci.appveyor.com/project/postgresql-cfbot/postgresql/build/1.0.1022 [3] https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fpclass-fpclassf [4] https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/isnan-isnan-isnanf -- Thomas Munro http://www.enterprisedb.com