commit:     7a771de8495a19e73ee8c2bd3cd7f08fbe341e7d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 24 18:13:44 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep 24 18:13:44 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a771de8

dev-libs/icu: add upstream patch for test failure

This may cause runtime breakage (not just a failure
in a test, but exposed by it on hppa and actually riscv) and
it's a straightforward patch, so let's `git mv` in stable.

Bug: https://bugs.gentoo.org/788112
Closes: https://bugs.gentoo.org/807893
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/icu/files/icu-69.1-fix-ub-units.patch     | 23 ++++++++++++++++++++++
 .../icu/{icu-69.1.ebuild => icu-69.1-r1.ebuild}    |  3 +++
 2 files changed, 26 insertions(+)

diff --git a/dev-libs/icu/files/icu-69.1-fix-ub-units.patch 
b/dev-libs/icu/files/icu-69.1-fix-ub-units.patch
new file mode 100644
index 00000000000..6847d585155
--- /dev/null
+++ b/dev-libs/icu/files/icu-69.1-fix-ub-units.patch
@@ -0,0 +1,23 @@
+https://github.com/unicode-org/icu/pull/1715
+https://bugs.gentoo.org/788112
+
+From 29f1188d191a7a75ac7ffa4bfa390f625da39c53 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <[email protected]>
+Date: Tue, 11 May 2021 19:04:24 +0200
+Subject: [PATCH] ICU-21613 Fix undefined behaviour in
+ ComplexUnitsConverter::applyRounder
+
+--- a/i18n/units_complexconverter.cpp
++++ b/i18n/units_complexconverter.cpp
+@@ -237,6 +237,11 @@ void 
ComplexUnitsConverter::applyRounder(MaybeStackArray<int64_t, 5> &intValues,
+     }
+     quantity = decimalQuantity.toDouble();
+ 
++    if (uprv_isNaN(quantity) || uprv_isInfinite(quantity)) {
++        // Do nothing for non-finite values, since conversion to int64_t is 
undefined
++        return;
++    }
++
+     int32_t lastIndex = unitsConverters_.length() - 1;
+     if (lastIndex == 0) {
+         // Only one element, no need to bubble up the carry

diff --git a/dev-libs/icu/icu-69.1.ebuild b/dev-libs/icu/icu-69.1-r1.ebuild
similarity index 96%
rename from dev-libs/icu/icu-69.1.ebuild
rename to dev-libs/icu/icu-69.1-r1.ebuild
index 1d2630ee16e..b540e57c81b 100644
--- a/dev-libs/icu/icu-69.1.ebuild
+++ b/dev-libs/icu/icu-69.1-r1.ebuild
@@ -32,6 +32,9 @@ PATCHES=(
        "${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
        "${FILESDIR}/${PN}-64.2-darwin.patch"
        "${FILESDIR}/${PN}-68.1-nonunicode.patch"
+       # Should be in the next rleease, but check
+       # https://bugs.gentoo.org/788112
+       "${FILESDIR}/${PN}-69.1-fix-ub-units.patch"
 )
 
 src_prepare() {

Reply via email to