This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/20914] Another grouping trouble
- From: "cvs-commit at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Apr 2005 14:30:47 -0000
- Subject: [Bug libstdc++/20914] Another grouping trouble
- References: <20050409074710.20914.pcarlini@suse.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-04-17 14:30 -------
Subject: Bug 20914
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: paolo@gcc.gnu.org 2005-04-17 14:30:37
Modified files:
libstdc++-v3 : ChangeLog
libstdc++-v3/include/bits: locale_facets.tcc
Added files:
libstdc++-v3/testsuite/22_locale/num_put/put/char: 20914.cc
libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t: 20914.cc
Log message:
2005-04-17 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/20914
* include/bits/locale_facets.tcc (__int_to_char(_CharT*, _ValueT,
const _CharT*, ios_base::fmtflags, bool)): Don't deal with numeric
base or sign here, instead...
(_M_insert_int(_OutIter, ios_base&, _CharT, _ValueT)): ... here,
after adding the grouping. This fixes the bug and also allows to
clean-up the code dealing with integer types.
(_M_group_int(const char*, size_t, _CharT, ios_base&, _CharT*,
_CharT*, int&)): Simplify, remove bits dealing with numeric base.
(__int_to_char(_CharT*, unsigned long, const _CharT*,
ios_base::fmtflags), __int_to_char(_CharT*, unsigned long long,
const _CharT*, ios_base::fmtflags)): Remove hackish fix for
libstdc++/15565.
(__int_to_char(_CharT*, long, const _CharT*, ios_base::fmtflags),
__int_to_char(_CharT*, long long, const _CharT*, ios_base::fmtflags)):
Simplify, don't pass the sign.
(_M_insert_float(_OutIter, ios_base&, _CharT, char, _ValueT)):
Deal with a sign at the beginning of __cs; robustify the grouping
check.
* testsuite/22_locale/num_put/put/char/20914.cc: New.
* testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2973&r2=1.2974
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/locale_facets.tcc.diff?cvsroot=gcc&r1=1.212&r2=1.213
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/22_locale/num_put/put/char/20914.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20914.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20914