diff Python/pytime.c @ 75595:9d69a2418d80

Issue #14180: Fix an invalid rounding when compiler optimization are enabled Use volatile keyword to disable localy unsafe float optimizations.
author Victor Stinner <vstinner@wyplay.com>
date Tue, 13 Mar 2012 19:12:23 +0100
parents ed73006bac42
children f554043badec
line wrap: on
line diff
--- a/Python/pytime.c	Tue Mar 13 17:42:18 2012 +0100
+++ b/Python/pytime.c	Tue Mar 13 19:12:23 2012 +0100
@@ -102,7 +102,9 @@
 {
     assert(denominator <= LONG_MAX);
     if (PyFloat_Check(obj)) {
-        double d, intpart, floatpart, err;
+        double d, intpart, err;
+        /* volatile avoids unsafe optimization on float enabled by gcc -O3 */
+        volatile double floatpart;
 
         d = PyFloat_AsDouble(obj);
         floatpart = modf(d, &intpart);