aboutsummaryrefslogtreecommitdiff
path: root/src/pl/plperl/plperl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pl/plperl/plperl.h')
-rw-r--r--src/pl/plperl/plperl.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h
index 12fbad97873..0a77860b98f 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