The mapping from char to wchar_t needs to handle 'i' and 'I' but those were absent from the table that is used for some non-ASCII encodings.
libstdc++-v3/ChangeLog: * include/bits/basic_string.h (__to_wstring_numeric): Add 'i' and 'I' to mapping. --- Tested x86_64-linux. libstdc++-v3/include/bits/basic_string.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 8369c24d3ae..431ca486ddb 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -4575,6 +4575,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 __wc['d'] = L'd'; __wc['e'] = L'e'; __wc['f'] = L'f'; + __wc['i'] = L'i'; // for "inf" __wc['n'] = L'n'; // for "nan" and "inf" __wc['p'] = L'p'; // for hexfloats "0x1p1" __wc['x'] = L'x'; @@ -4584,6 +4585,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 __wc['D'] = L'D'; __wc['E'] = L'E'; __wc['F'] = L'F'; + __wc['I'] = L'I'; __wc['N'] = L'N'; __wc['P'] = L'P'; __wc['X'] = L'X'; -- 2.47.1