diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h index 12fbad9787..0a77860b98 100644 --- a/src/pl/plperl/plperl.h +++ b/src/pl/plperl/plperl.h @@ -40,10 +40,15 @@ /* * ActivePerl 5.18 and later are MinGW-built, and their headers use GCC's - * __inline__. Translate to something MSVC recognizes. + * __inline__. Translate to something MSVC recognizes. Also, perl.h sometimes + * defines isnan, so undefine it here and put back the definition later if + * perl.h doesn't. */ #ifdef _MSC_VER #define __inline__ inline +#ifdef isname +#undef isnan +#endif #endif /* @@ -135,6 +140,13 @@ #define vprintf pg_vprintf #define printf(...) pg_printf(__VA_ARGS__) +/* put back the definition of isnan if needed */ +#ifdef _MSC_VER +#ifndef isnan +#define isnan(x) _isnan(x) +#endif +#endif + /* perl version and platform portability */ #define NEED_eval_pv #define NEED_newRV_noinc