File icu-avoid-x87-excess-precision.diff of Package icu.691

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());
 
openSUSE Build Service is sponsored by