mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 12:58:16 -07:00
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@gentoo.org>
This commit is contained in:
23
dev-libs/icu/files/icu-69.1-fix-ub-units.patch
Normal file
23
dev-libs/icu/files/icu-69.1-fix-ub-units.patch
Normal file
@@ -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 <schwab@suse.de>
|
||||
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
|
||||
@@ -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() {
|
||||
Reference in New Issue
Block a user