i18n/smpdtfmt.cpp:1201: Assertion `0 <= value && value < symbolsCount' failed.

Description

The following test case asserts with:

/home/andre/git/icu/icu4c/source/i18n/smpdtfmt.cpp:1201: void icu_64::_appendSymbol(icu_64::UnicodeString&, int32_t, const icu_64::UnicodeString*, int32_t): Assertion `0 <= value && value < symbolsCount' failed.

The assertion failure is reproducible with multiple locales, e.g. "agq", "ak", "asa", "bas", "bem", "bez", "bm", ...

https://unicode-org.atlassian.net/browse/ICU-13430 also mentions an assertion triggered in that line, but that bug seems to be restricted to NaN and Infinity values, whereas this one doesn't use any non-finite inputs.

This issue is blocking the implementation of the ECMA-402 PR <https://github.com/tc39/ecma402/pull/346>.

Test case:

Assignee

Caio Lima

Reporter

André Bargull

Components

Labels

Reviewer

Shane Carr

Priority

major

Time Needed

None

Fix versions

None
Configure