Index: src/globals.h |
diff --git a/src/globals.h b/src/globals.h |
index 8c27b01b545bf35c4778571b07fd9a5efaeb4680..3a83f2cbee1d9a091d8c4cb6895ed0ab44c45485 100644 |
--- a/src/globals.h |
+++ b/src/globals.h |
@@ -11,6 +11,20 @@ |
#include "src/base/build_config.h" |
#include "src/base/logging.h" |
#include "src/base/macros.h" |
+ |
+// Unfortunately, the INFINITY macro cannot be used with the '-pedantic' |
+// warning flag and certain versions of GCC due to a bug: |
+// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11931 |
+// For now, we use the more involved template-based version from <limits>, but |
+// only when compiling with GCC versions affected by the bug (2.96.x - 4.0.x) |
+#if V8_CC_GNU && V8_GNUC_PREREQ(2, 96, 0) && !V8_GNUC_PREREQ(4, 1, 0) |
+# include <limits> // NOLINT |
+# define V8_INFINITY std::numeric_limits<double>::infinity() |
+#elif V8_LIBC_MSVCRT |
+# define V8_INFINITY HUGE_VAL |
+#else |
+# define V8_INFINITY INFINITY |
+#endif |
#if V8_TARGET_ARCH_IA32 || (V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_32_BIT) || \ |
V8_TARGET_ARCH_ARM || V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_MIPS || \ |