From a41f51ad5f5ac002766d6d0e51ce0f6c7ece2031 Mon Sep 17 00:00:00 2001 From: Shane Carr Date: Thu, 3 May 2018 08:53:20 +0000 Subject: [PATCH] ICU-12572 Undefined behavior fixes in number code. X-SVN-Rev: 41315 --- icu4c/source/i18n/number_formatimpl.cpp | 1 + icu4c/source/i18n/number_patternstring.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/icu4c/source/i18n/number_formatimpl.cpp b/icu4c/source/i18n/number_formatimpl.cpp index 93f16d197b5..48645a50b82 100644 --- a/icu4c/source/i18n/number_formatimpl.cpp +++ b/icu4c/source/i18n/number_formatimpl.cpp @@ -125,6 +125,7 @@ int32_t NumberFormatterImpl::getPrefixSuffixUnsafe(int8_t signum, StandardPlural } NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, bool safe, UErrorCode& status) { + if (U_FAILURE(status)) { return; } fMicroPropsGenerator = macrosToMicroGenerator(macros, safe, status); } diff --git a/icu4c/source/i18n/number_patternstring.h b/icu4c/source/i18n/number_patternstring.h index 5d8a526d2bb..91e120c16a1 100644 --- a/icu4c/source/i18n/number_patternstring.h +++ b/icu4c/source/i18n/number_patternstring.h @@ -30,7 +30,7 @@ struct U_I18N_API Endpoints { // Exported as U_I18N_API because it is a public member field of exported ParsedPatternInfo struct U_I18N_API ParsedSubpatternInfo { - int64_t groupingSizes = 0x0000ffffffff0000L; + uint64_t groupingSizes = 0x0000ffffffff0000L; int32_t integerLeadingHashSigns = 0; int32_t integerTrailingHashSigns = 0; int32_t integerNumerals = 0; -- 2.40.0