icu/icu-avoid-x87-excess-precision.diff
2022-10-19 11:29:52 +00:00

34 lines
1.5 KiB
Diff

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
@@ -875,7 +875,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());
@@ -970,7 +971,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());