Consider, f.i., "is_IS": its strftime format is '%a %e.%b %Y'. However, _M_extract_via_format doesn't have a case for 'e', and, moreover, it's not trivial to add one, since in the single digit case we have to skip the initial space, but _M_extract_num cannot currently do that.
Subject: Bug 12750 CVSROOT: /cvs/gcc Module name: gcc Changes by: paolo@gcc.gnu.org 2003-10-27 16:21:14 Modified files: libstdc++-v3 : ChangeLog libstdc++-v3/include/bits: locale_facets.tcc locale_facets.h libstdc++-v3/src: locale-inst.cc Added files: libstdc++-v3/testsuite/22_locale/time_get/get_date/char: 12750.cc libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t: 12750.cc libstdc++-v3/testsuite/22_locale/num_get/get/char: 7.cc libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t: 7.cc Log message: 2003-10-27 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12750 * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): Deal with code 'e'. * testsuite/22_locale/time_get/get_date/char/12750.cc: New. * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Ditto. * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): Tweak to absolutely avoid dereferencing end iterators. * include/bits/locale_facets.h (__verify_grouping): Const-ify second parameter. * include/bits/locale_facets.tcc (__verify_grouping): Ditto. * src/locale-inst.cc (__verify_grouping): Ditto. 2003-10-27 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (num_get::_M_extract_float): Various things: 1- Avoid absolutely end iterator dereferences; 2- Improve performance-wise the code skipping leading zeros; 3- Fix two bugs wrt early bail out in case of parsing errors (see testcases); 4- General clean up. (num_get::_M_extract_int): Likewise, except 3-. Additionally, use __builtin_expect to favor base 10 inputs. * testsuite/22_locale/num_get/get/char/7.cc: New. * testsuite/22_locale/num_get/get/wchar_t/7.cc: Ditto. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2049&r2=1.2050 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/locale_facets.tcc.diff?cvsroot=gcc&r1=1.132&r2=1.133 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/locale_facets.h.diff?cvsroot=gcc&r1=1.68&r2=1.69 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/src/locale-inst.cc.diff?cvsroot=gcc&r1=1.44&r2=1.45 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12750.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12750.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/22_locale/num_get/get/char/7.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/7.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
Fixed for 3.4.
Subject: Bug 12750 CVSROOT: /cvs/gcc Module name: gcc Branch: hammer-3_3-branch Changes by: paolo@gcc.gnu.org 2004-08-16 17:35:12 Modified files: libstdc++-v3 : ChangeLog.hammer libstdc++-v3/include/bits: locale_facets.tcc Log message: 2004-08-16 Paolo Carlini <pcarlini@suse.de> PR libstdc++/12750 * include/bits/locale_facets.tcc (time_get::_M_extract_via_format): Deal with code 'e'. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.hammer.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.1.2.40&r2=1.1.2.41 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/locale_facets.tcc.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.82.2.25&r2=1.82.2.26