From: rguenther@suse.com References: http://bugzilla.opensuse.org/1030253 Avoid FixedPrecision::initVisibleDigits failure on i586 with GCC 7. --- source/test/intltest/dcfmapts.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) Index: icu/source/test/intltest/dcfmapts.cpp =================================================================== --- icu.orig/source/test/intltest/dcfmapts.cpp +++ icu/source/test/intltest/dcfmapts.cpp @@ -870,7 +870,8 @@ void IntlTestDecimalFormatAPI::TestFixed ASSERT_EQUAL(22, fd.getPluralOperand(PLURAL_OPERAND_V)); ASSERT_EQUAL(1234567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_F)); ASSERT_EQUAL(1234567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_T)); - ASSERT_EQUAL(345678901234567890LL, fd.getPluralOperand(PLURAL_OPERAND_I)); + volatile double xxa = fd.getPluralOperand(PLURAL_OPERAND_I); + ASSERT_EQUAL(345678901234567890LL, xxa); ASSERT_EQUAL(FALSE, fd.hasIntegerValue()); ASSERT_EQUAL(FALSE, fd.isNegative()); @@ -965,7 +966,8 @@ void IntlTestDecimalFormatAPI::TestFixed ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T)); // note: going through DigitList path to FixedDecimal, which is trimming // int64_t fields to 18 digits. See ticket Ticket #10374 - ASSERT_EQUAL(223372036854775807LL, fd.getPluralOperand(PLURAL_OPERAND_I)); + volatile double xxb = fd.getPluralOperand(PLURAL_OPERAND_I); + ASSERT_EQUAL(223372036854775807LL, xxb); ASSERT_EQUAL(TRUE, fd.hasIntegerValue()); ASSERT_EQUAL(FALSE, fd.isNegative());