changeset: 75595:9d69a2418d80 user: Victor Stinner date: Tue Mar 13 19:12:23 2012 +0100 files: Python/pytime.c description: Issue #14180: Fix an invalid rounding when compiler optimization are enabled Use volatile keyword to disable localy unsafe float optimizations. diff -r 760cf150bb99 -r 9d69a2418d80 Python/pytime.c --- 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);