--- source/i18n/precision.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: icu/source/i18n/precision.cpp =================================================================== --- icu.orig/source/i18n/precision.cpp +++ icu/source/i18n/precision.cpp @@ -227,7 +227,7 @@ FixedPrecision::initVisibleDigits( } // Try to find n such that value * 10^n is an integer int32_t n = -1; - double scaled; + volatile double scaled; // make sure scaled is in memory to avoid excess precision with x87 math for (int32_t i = 0; i < UPRV_LENGTHOF(gPower10); ++i) { scaled = value * gPower10[i]; if (scaled > MAX_INT64_IN_DOUBLE || scaled < -MAX_INT64_IN_DOUBLE) {