Merged revisions 69459 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r69459 | mark.dickinson | 2009-02-09 14:18:43 +0000 (Mon, 09 Feb 2009) | 3 lines

  Issue #4575: fix Py_IS_INFINITY macro to work correctly on x87 FPUs.
  It now forces its argument to double before testing for infinity.
........
diff --git a/Python/pymath.c b/Python/pymath.c
index 5cf61ab..5d09b4c 100644
--- a/Python/pymath.c
+++ b/Python/pymath.c
@@ -1,5 +1,18 @@
 #include "Python.h"
 
+#ifdef X87_DOUBLE_ROUNDING
+/* On x86 platforms using an x87 FPU, this function is called from the
+   Py_FORCE_DOUBLE macro (defined in pymath.h) to force a floating-point
+   number out of an 80-bit x87 FPU register and into a 64-bit memory location,
+   thus rounding from extended precision to double precision. */
+double _Py_force_double(double x)
+{
+	volatile double y;
+	y = x;
+	return y;
+}
+#endif
+
 #ifndef HAVE_HYPOT
 double hypot(double x, double y)
 {