Commit Graph

125 Commits

Author SHA1 Message Date
Benjamin Kosnik
6309eefc3d re PR libstdc++/17218 (unknown subjects in generated libstdc++ manpages)
2004-11-05  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/17218
	PR libstdc++/17223
	* docs/doxygen/filter: Remove.
	* docs/doxygen/filter.sed: Remove.
	* docs/doxygen/mainpage.html: Add link to functions.
	* docs/doxygen/run_doxygen: Changes due to new source filtering.
	* docs/doxygen/user.cfg.in: Update to doxygen 1.3.9.1, tweak.
	* include/bits/allocator.h: Tweaks for doxygen.
	* include/bits/char_traits.h: Same.
	* include/bits/codecvt.h: Same.
	* include/bits/concurrence.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/ext/array_allocator.h: Same.
	* include/ext/debug_allocator.h: Same.
	* include/ext/malloc_allocator.h: Same.
	* include/ext/mt_allocator.h: Same.
	* include/ext/new_allocator.h: Same.
	* include/ext/pool_allocator.h: Same.
	* include/ext/stdio_sync_filebuf.h: Same.
	* include/std/std_memory.h: Same.
	* include/tr1/array: Same.
	* include/tr1/tuple: Same.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Same.
	* config/os/gnu-linux/ctype_base.h: Same.

From-SVN: r90137
2004-11-05 19:58:03 +00:00
Geoffrey Keating
f9686024ee configure.host (darwin*): Set os_include_dir to a separate directory for Darwin.
* configure.host (darwin*): Set os_include_dir to a separate directory
	for Darwin.
	* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Add a new C locale kind,
	'darwin'.
	* config/locale/darwin/ctype_members.cc: New.
	* config/os/bsd/darwin/ctype_base.h: New.
	* config/os/bsd/darwin/ctype_inline.h: New.
	* config/os/bsd/darwin/ctype_noninline.h: New.
	* config/os/bsd/darwin/os_defines.h: New.

From-SVN: r89874
2004-10-30 01:03:12 +00:00
Paolo Carlini
a780ad2f43 monetary_members.cc (_S_construct_pattern): Give __ret a default value, thus avoiding spurious warnings.
2004-10-10  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/monetary_members.cc (_S_construct_pattern):
	Give __ret a default value, thus avoiding spurious warnings.

	* testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either
	words or linux.words, otherwise exit.
	* testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak.

From-SVN: r88848
2004-10-10 17:55:23 +00:00
Roger Sayle
e6fecd0132 c_locale.cc (__convert_to_v): Use _GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof.
* config/locale/generic/c_locale.cc (__convert_to_v): Use
	_GLIBCXX_HAVE_STRTOF instead _GLIBCXX_USE_C99 to check for strtof.
	Likewise, use _GLIBCXX_HAVE_STRTOLD instead of _GLIBCXX_USE_C99
	to check for presence of strtold.

From-SVN: r88472
2004-10-04 00:19:57 +00:00
Paolo Carlini
cb79308987 PR libstdc++/17038 (partial)
2004-08-25  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/17038 (partial)
	* include/bits/locale_facets.tcc (time_put<>::do_put): Increase
	__maxlen to 128.
	* include/bits/locale_facets.h (class __timepunct): Add FIXME
	comment about _M_put.
	* config/locale/generic/time_members.cc (_M_put): Always null
	terminate __s.
	* config/locale/gnu/time_members.cc (_M_put): Likewise.
	* testsuite/22_locale/time_put/put/char/17038.cc: New.
	* testsuite/22_locale/time_put/put/wchar_t/17038.cc: New.

From-SVN: r86586
2004-08-25 23:38:29 +00:00
Jan Beulich
03a2b8100f 2004-08-12 Jan Beulich <jbeulich@novell.com>
* config/locale/generic/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Default case must not use 0 as
	initializer for return value, as that is invalid for enumerated	types.
	* config/locale/gnu/ctype_members.cc
	(ctype<wchar_t>::_M_convert_to_wmask): Likewise.

From-SVN: r85862
2004-08-12 09:46:39 +00:00
Paolo Carlini
49864a8255 c_locale.h (__convert_from_v): Don't use a default for __prec, assume __prec >= 0 and simplify.
2004-08-07  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/c_locale.h (__convert_from_v): Don't
	use a default for __prec, assume __prec >= 0 and simplify.
	* config/locale/gnu/c_locale.h (__convert_from_v): Likewise.
	* include/bits/locale_facets.tcc (money_put<>::do_put(long double)):
	Pass format "%.*Lf" + precision == 0, equivalent to "%.0Lf".

From-SVN: r85669
2004-08-07 13:48:31 +00:00
Paolo Carlini
61c53cd36b 2004-06-28 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t>::_M_initialize_moneypunct): Clean up
	assignments of _M_decimal_point and _M_thousands_sep.

From-SVN: r83767
2004-06-28 09:27:18 +00:00
Paolo Carlini
a80e0e831f 2004-06-18 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/numeric_members.cc
	(numpunct<wchar_t>::_M_initialize_numpunct): Clean up
	assignments of _M_decimal_point and _M_thousands_sep.
	* config/locale/gnu/time_members.cc
	(__timepunct<wchar_t>::_M_initialize_timepunct): Clean up
	and reformat assignments of date and time fields.

From-SVN: r83346
2004-06-18 10:54:44 +00:00
Benjamin Kosnik
26c691a88b re PR libstdc++/12854 (libstdc++ vs. -Weffc++)
2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/12854
	Fixups for -Weffc++.
	* include/bits/basic_string.h (basic_string::operator=): Return
	pointer to this instead of result of assign. Although redundant,
	this doesn't impact resultant codegen.

	* include/bits/locale_facets.h (__numpunct_cache): Declare
	assignment opxserator and copy constructor private.
	(__timepunct_cache): Same.
	(__moneypunct_cache): Same.
	(collate): Use member initialization list for _M_c_locale_collate.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/time_members.h (__timepunct): Same.
	* src/codecvt.cc: Use member initialization list to initialize
	_M_c_locale_codecvt.
	* src/ctype.cc: Same, with _M_c_locale_ctype and _M_narrow_ok.
	* config/os/gnu-linux/ctype_noninline.h: Same.
	* src/locale.cc (_Impl): Same.
	* src/locale_init.cc: Same.
	* src/localename.cc: Same.

	* include/bits/basic_ios.h (basic_ios): Complete member
	initialization list.
	* include/bits/istream.tcc (basic_istream::sentry): Same.
	* include/bits/ostream.tcc (basic_ostream::sentry): Same.
	* include/bits/fstream.tcc (basic_filebuf): Add _M_lock and
	_M_pback to member initialization list.
	* include/std/std_streambuf.h: Same.
	* include/std/std_sstream.h: Same, for _M_mode.
	* src/ios.cc (ios_base): Same.

	* include/ext/rope: Make derived classes match exception

	 specifications. Add copy constructors and assignment operators.

	* include/debug/safe_base.h (_Safe_sequence_base): Declare copy
	constructor and assignment operator protected.
	(_Safe_iterator_base): Same.
	* include/debug/formatter.h (_Error_formatter): Define copy
	constructor and assignment operator.

	* include/backward/strstream: Declare assignment operator and copy
	constructor private.

From-SVN: r82153
2004-05-22 23:46:34 +00:00
Simon Marshall
95b147fe4a re PR libstdc++/15090 (-fno-for-scope vs. libstdc++)
2004-05-13  Simon Marshall <simon.marshall@misys.com>
	    Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/15090
	* include/bits/locale_facets.h: Fix for -fno-for-scope.
	* include/debug/safe_sequence.h: Same.
	* include/debug/safe_iterator.tcc: Same.
	* src/debug.cc: Same.
	* src/locale.cc: Same.
	* src/locale_init.cc: Same.
	* src/localename.cc: Same.
	* config/locale/gnu/ctype_members.cc: Same.
	* config/locale/gnu/numeric_members.cc: Same.
	* testsuite/testsuite_abi.cc: Same.
	* testsuite/testsuite_hooks.cc: Same.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r81795
2004-05-13 16:29:39 +00:00
Paolo Carlini
af55af57e1 acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not used anymore.
2004-04-16  Paolo Carlini  <pcarlini@suse.de>

	* acconfig.h: Remove _GLIBCXX_USE_LONG_DOUBLE entry, not
	used anymore.
	* config.h.in: Regenerate.

2004-04-16  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/monetary_members.cc
	(moneypunct<wchar_t>::_M_initialize_moneypunct): Avoid calling
	btowc unnecessarily, just cast to wchar_t (the concerned chars
	all belong to the basic character set).
	* config/locale/generic/numeric_members.cc
	(numpunct<wchar_t>::_M_initialize_numpunct): Likewise.
	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t>::_M_initialize_moneypunct): Likewise.
	* config/locale/gnu/numeric_members.cc
	(numpunct<wchar_t>::_M_initialize_numpunct): Likewise.

From-SVN: r80746
2004-04-16 09:23:05 +00:00
Paolo Carlini
92861ad4a0 2004-04-12 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/numeric_members.cc
	(numpunct<wchar_t>::_M_initialize_numpunct): No need to wrap
	in __uselocale, since btowc is called for chars belonging to
	the basic character set.

From-SVN: r80618
2004-04-12 08:36:23 +00:00
Paolo Carlini
ba98a8d81a time_members.cc (__timepunct<char>::_M_initialize_timepunct, [...]): the correct _M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
2004-04-07  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/time_members.cc
	(__timepunct<char>::_M_initialize_timepunct,
	__timepunct<wchar_t>::_M_initialize_timepunct): the correct
	_M_amonth07 in the "C" locale is "Jul" and L"Jul", respectively.
	* config/locale/gnu/time_members.cc
	(__timepunct<char>::_M_initialize_timepunct,
	__timepunct<wchar_t>::_M_initialize_timepunct): Ditto.
	* testsuite/22_locale/time_get/get_monthname/char/4.cc: New.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc: New.

	* testsuite/22_locale/time_get/date_order/char/1.cc: Remove junk.
	* testsuite/22_locale/time_get/date_order/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_date/char/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_date/char/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_date/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_monthname/char/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_monthname/char/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_time/char/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_time/char/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_weekday/char/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_weekday/char/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Ditto.
	* testsuite/22_locale/time_get/get_year/char/1.cc: Ditto.
	* testsuite/22_locale/time_get/get_year/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/1.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/2.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/3.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/4.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/5.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/6.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/7.cc: Ditto.
	* testsuite/22_locale/time_put/put/char/8.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/1.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/2.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/3.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/4.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/5.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/6.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/7.cc: Ditto.
	* testsuite/22_locale/time_put/put/wchar_t/8.cc: Ditto.

	* testsuite/22_locale/time_put/put/char/9780-1.cc: Fix typos.

From-SVN: r80493
2004-04-07 23:14:08 +00:00
Paolo Carlini
f332a090b2 2004-04-07 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t>::_M_initialize_moneypunct): Prefer
	_NL_MONETARY_DECIMAL_POINT_WC, _NL_MONETARY_THOUSANDS_SEP_WC,
	and __MON_GROUPING to _NL_NUMERIC_DECIMAL_POINT_WC,
	_NL_NUMERIC_THOUSANDS_SEP_WC, and GROUPING.
	* config/locale/gnu/numeric_members.cc
	(numpunct<char>::_M_initialize_numpunct): Prefer DECIMAL_POINT
	and THOUSANDS_SEP to the deprecated RADIXCHAR and THOUSEP.

From-SVN: r80477
2004-04-07 14:32:47 +00:00
Benjamin Kosnik
563ae04fec Fixups for EDG front end.
2004-04-06  Benjamin Kosnik  <bkoz@redhat.com>

	Fixups for EDG front end.
	* include/ext/rope: Instead of non-existent function
	_Data_allocate, use allocator's allocate. Use this.
	(namespace _Rope_constants): Move _S_max_rope_depth, and _Tag
	enumerations from _Rope_RopeRep here.
	* include/ext/ropeimpl.h: Same.
	* src/ext-inst.cc (_S_min_len): Fix up definition.

	* config/locale/gnu/ctype_members.cc: Qualify base class members
	with this.
	* config/locale/generic/ctype_members.cc: Same.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/generic/messages_members.h: Same.
	* src/ctype.cc: Same.
	* include/bits/codecvt.h: Same.

	* include/bits/boost_concept_check.h: Declare.
	(__error_type_must_be_an_unsigned_integer_type): Remove this.
	(__error_type_must_be_an_integer_type): Remove this.
	(__error_type_must_be_a_signed_integer_type): Remove this.

	* config/io/basic_file_stdio.cc (__basic_file::sys_open): Remove cast.

	* libsupc++/eh_alloc.cc (__cxa_free_exception): Add exception
	specification to definition.
	(__cxa_allocate_exception): Same.
	* libsupc++/eh_catch.cc (__cxa_begin_catch): Same.
	* libsupc++/eh_globals.cc (__cxa_get_globals_fast): Same.
	(__cxa_get_globals): Same.

	* libsupc++/del_op.cc: Add comment about freestanding.

From-SVN: r80475
2004-04-07 03:33:36 +00:00
Paolo Carlini
e004c3313e c_locale.cc (__convert_to_v(long double&)): In v3 uses of sscanf...
2004-03-31  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/c_locale.cc (__convert_to_v(long double&)):
	In v3 uses of sscanf, the special floating-point numbers INF,
	INFINITY, etc., cannot occur in input, therefore, if the latter
	is too large, ERANGE is always stored in errno, no need of finitel.

From-SVN: r80247
2004-03-31 09:13:10 +00:00
Benjamin Kosnik
a5f105b590 [multiple changes]
2004-03-27  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++ PR/13598
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h
	(__enc_traits::_M_destroy): New.
	(__enc_traits::~__enc_traits): Use it.
	(__enc_traits::operator=): Use _M_destroy, _M_init.
	(__enc_traits::__enc_traits): Same.

2004-03-27  Petur Runolfsson  <peturr02@ru.is>

	* testsuite/ext/enc_filebuf/char/13598.cc: New.

From-SVN: r80027
2004-03-27 16:21:21 +00:00
Paolo Carlini
fe932e504b locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms.
2004-02-21  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (class money_base): Add { _S_minus,
	_S_zero, _S_end } enum, _S_atoms.
	(struct __moneypunct_cache<>): Parameterize on _Intl too; add
	_M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size,
	_M_negative_sign_size, _M_atoms; tweak constructor consistently.
	(__moneypunct_cache<>::~__moneypunct_cache): Update.
	(__moneypunct_cache<>::_M_cache): Fill the cache.
	(class moneypunct): Tweak __cache_type typedef.
	(class money_put): Inherit from money_base too; tweak declaration
	of _M_insert, now parameterized on _Intl.
	* include/bits/locale_facets.tcc
	(struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New.
	(money_put<>::_M_insert): Update definition to use the cache;
	call reserve on __res to avoid multiple reallocations.
	(money_put<>::do_put(long double),
	money_put<>::do_put(const string_type&): Update calls of _M_insert.
	* config/locale/generic/monetary_members.cc
	(moneypunct<char, true>::_M_initialize_moneypunct,
	moneypunct<char, false>::_M_initialize_moneypunct,
	moneypunct<wchar_t, true>::_M_initialize_moneypunct,
	moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update.
	* config/locale/gnu/monetary_members.cc: Likewise.
	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t, true>::~moneypunct(),
	moneypunct<wchar_t, false>::~moneypunct()): Likewise.
	* src/globals_locale.cc: Tweak fake_money_cache_c.
	* src/locale-inst.cc: Add instantiations for
	money_put::_M_insert<false> and money_put::_M_insert<true> and
	__moneypunct_cache<C, false>, __moneypunct_cache<C, true>.
	* src/locale_facets.cc: Define money_base::_S_atoms.
	* src/locale_init.cc: Update placement new of
	__moneypunct_cache<char, false>, __moneypunct_cache<char, true>,
	__moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>.

	* config/locale/generic/numeric_members.cc: Clean up.
	* config/locale/gnu/numeric_members.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/1.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/3.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.

From-SVN: r78216
2004-02-21 09:26:35 +00:00
Paolo Carlini
9924f721bf c++locale_internal.h: Remove prototypes of no longer used GLIBC thread locale functions.
2004-02-02  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/c++locale_internal.h: Remove prototypes
	of no longer used GLIBC thread locale functions.

From-SVN: r77140
2004-02-02 23:45:34 +00:00
Stephen M. Webb
917a9fd4d5 c_locale.h: Change ::malloc() to new char[].
2004-01-29  Stephen M. Webb  <stephen.webb@bregmasoft.com>

	* config/local/generic/c_locale.h: Change ::malloc() to new char[].
  	* config/local/gnu/c_locale.h: Change ::malloc() to new char[].
  	* include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
	std::get_temporary_buffer() instead of duplicating its code.
	Update to C++STYLE conventions.
  	* include/std/std_memory.h (get_temporary_buffer): Use ::operator
	new() instead of std::malloc().
	(return_temporary_buffer): Use ::operator delete() instead of
	std::free().

From-SVN: r76922
2004-01-30 03:43:00 +00:00
Paolo Carlini
ba9119ec89 c_locale.cc: Fix throw messages to use the __N marker.
2004-01-26  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/c_locale.cc: Fix throw messages
	to use the __N marker.
	* config/locale/gnu/c_locale.cc: Likewise.
	* config/locale/ieee_1003.1-2001/codecvt_specializations.h:
	Likewise.
	* docs/html/17_intro/C++STYLE: Likewise.
	* include/bits/basic_ios.tcc: Likewise.
	* include/bits/fstream.tcc: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/std/std_bitset.h: Likewise.
	* src/ios.cc: Likewise.
	* src/locale.cc: Likewise.
	* src/localename.cc: Likewise.

From-SVN: r76684
2004-01-27 00:49:03 +00:00
Andreas Schwab
f942e78de9 monetary_members.cc: Restore locale before rethrowing exception.
* config/locale/gnu/monetary_members.cc: Restore locale before
rethrowing exception.

From-SVN: r76595
2004-01-25 23:31:43 +00:00
Paolo Carlini
47f62b27c8 locale_facets.h (struct __numpunct_cache): Add member _M_grouping_size, caching the length of _M_grouping.
2004-01-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (struct __numpunct_cache):
	Add member _M_grouping_size, caching the length of _M_grouping.
	(__numpunct_cache<>::_M_cache): Assign the latter.
	(__verify_grouping): Move declaration...
	* include/bits/locale_facets.tcc (__verify_grouping):
	... here, change signature to take a const char* and a size_t
	for the grouping; not a template anymore.
	(__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
	Likewise change signature and tweak consistently.
	(num_get::_M_extract_float, num_get::_M_extract_int,
	num_put::_M_insert_int, num_put::_M_insert_float,
	money_get::do_get(string_type&), money_get::do_put(string_type)):
	Update callers.
	* config/locale/generic/numeric_members.cc
	(numpunct<>::_M_initialize_numpunct): Assign the new member.
	* config/locale/gnu/numeric_members.cc
	(numpunct<>::_M_initialize_numpunct): Likewise.
	* src/locale-inst.cc (__add_grouping): Tweak signature.
	(__verify_grouping): Don't instantiate, not a template anymore.

	* include/bits/locale_facets.h: Rename _M_truename_len ->
	_M_truename_size, _M_falsename_len -> _M_falsename_size.
	* include/bits/locale_facets.tcc: Likewise.
	* config/locale/generic/numeric_members.cc: Likewise.
	* config/locale/gnu/numeric_members.cc: Likewise.

From-SVN: r75876
2004-01-14 19:14:39 +00:00
Paolo Carlini
dc6798f865 locale_facets.h (struct __numpunct_cache): Add members _M_truename_len and _M_falsename_len...
2004-01-12  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (struct __numpunct_cache):
	Add members _M_truename_len and _M_falsename_len, caching
	the lengths of _M_truename and _M_falsename.
	(__numpunct_cache<>::_M_cache): Assign the latter.
	* include/bits/locale_facets.tcc (num_get::do_get(bool&),
	num_put::do_put(bool)): Use the new members, thus avoiding
	computing string lengths again and again.
	* config/locale/generic/numeric_members.cc
	(numpunct<>::_M_initialize_numpunct): Assign the new members.
	* config/locale/gnu/numeric_members.cc
	(numpunct<>::_M_initialize_numpunct): Likewise.

From-SVN: r75735
2004-01-12 17:02:08 +00:00
Paolo Carlini
17fa55600a numeric_members.cc (_M_initialize_numpunct): Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in...
2004-01-04  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
	Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
	always use double underscored names.
	* config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
	Likewise.
	* include/bits/locale_facets.h (struct __numpunct_cache):
	Dimension _M_atoms_out and _M_atoms_in one position smaller.
	(__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
	and _M_atoms_in.

From-SVN: r75393
2004-01-04 18:34:27 +00:00
Paolo Carlini
1b4513069a locale_facets.tcc (num_get::_M_extract_float): When __found_sci becomes true stop eating thousands separators and the decimal...
2003-12-19  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_get::_M_extract_float):
	When __found_sci becomes true stop eating thousands separators
	and the decimal radix separator.
	* testsuite/22_locale/num_get/get/char/9.cc: New.
	* testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise.

	* config/locale/generic/c_locale.cc (__convert_to_v): Don't
	check that *__sanity == '\0': parsing may stop earlier, still
	be successful.
	* config/locale/gnu/c_locale.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/10.cc: New.
	* testsuite/22_locale/num_get/get/wchar_t/10.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
	Tweak in one place accordingly.

	* testsuite/22_locale/money_get/get/char/1.cc: Fix typo.
	* testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise.

From-SVN: r74826
2003-12-19 09:35:24 +00:00
Paolo Carlini
9a1349b920 re PR libstdc++/11723 (ctype<wchar_t>::do_is(mask, wchar_t) is slow)
2003-12-16  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/11723
	* include/bits/locale_facets.h: Add _M_bit and _M_wmask,
	used to speed up the computation of ctype::do_is.
	* config/locale/generic/ctype_members.cc
	(_M_initialize_ctype): Fill _M_bit and _M_wmask.
	(ctype::do_is): Use _M_bit and _M_wmask.
	* config/locale/gnu/ctype_members.cc: Likewise.
	* testsuite/performance/is_wchar_t.cc: New.

	* testsuite/performance/narrow_widen_wchar_t.cc: Tweak
	string literal (incorrect citation ;)

	* include/bits/locale_facets.h: Minor tweaks, const
	correctness, unsigned -> size_t.

From-SVN: r74686
2003-12-16 11:00:52 +00:00
Paolo Carlini
ca13fb7f5d locale_facets.tcc (num_get::do_get(bool&)): Fail as soon as the begins of both truename and falsename stop to match...
2003-12-15  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_get::do_get(bool&)):
	Fail as soon as the begins of both truename and falsename
	stop to match; always leave __beg one position beyond the
	last char successfully matched.
	* testsuite/22_locale/num_get/get/char/8.cc: New.
	* testsuite/22_locale/num_get/get/wchar_t/8.cc: Likewise.

2003-12-15  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (_M_widen): Reserve space
	for all the possible widened chars.
	* config/locale/generic/ctype_members.cc (_M_initialize_ctype):
	Compute at construction time all the possible widened chars.
	(do_widen): Tweak, simplify.
	* config/locale/gnu/ctype_members.cc: Likewise.
	* testsuite/performance/narrow_widen_wchar_t.cc: Add tests
	for the array versions.

From-SVN: r74636
2003-12-15 16:56:42 +00:00
Paolo Carlini
e3c0c0989b re PR libstdc++/13341 (ctype<wchar_t>::do_narrow(wchar_t, char) is slow)
2003-12-12  Paolo Carlini  <pcarlini@suse.de>
	    Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/13341
	* include/bits/locale_facets.h (ctype<wchar_t>): Declare
	_M_initialize_ctype() and _M_narrow_ok, _M_narrow and _M_widen.
	* src/ctype.cc (ctype<wchar_t>::ctype(size_t),
	ctype<wchar_t>::ctype(__c_locale, size_t)): Use
	_M_initialize_ctype to fill _M_narrow and _M_widen.
	(ctype_byname<wchar_t>::ctype_byname(const char*, size_t)):
	Likewise.
	* config/locale/generic/ctype_members.cc (do_narrow, do_widen)
	Use _M_narrow and _M_widen when possible, instead of calling
	wctob and btowc, respectively.
	(_M_initialize_ctype): Define, it fills at construction time
	_M_narrow and _M_widen.
	* config/locale/gnu/ctype_members.cc: Likewise.
	* testsuite/performance/narrow_widen_wchar_t.cc: New.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r74580
2003-12-12 19:44:17 +00:00
Paolo Carlini
0fa96a6006 c_locale.cc (__convert_to_v(long&), [...]): Remove.
2003-12-08  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/c_locale.cc (__convert_to_v(long&),
	__convert_to_v(unsigned long&), __convert_to_v(long long&),
	__convert_to_v(unsigned long long&): Remove.
	(__convert_to_v(float&), __convert_to_v(double&),
	__convert_to_v(long double&)): Remove last unused parameter.
	* config/locale/gnu/c_locale.cc: Likewise.
	* include/bits/locale_facets.h: Likewise.
	(num_get::_M_extract_int): Update declaration.
	(class __num_base): Tweak _S_ie and _S_iE according to the
	_S_atoms_in changes.
	* include/bits/locale_facets.tcc (num_get::_M_extract_int):
	Provide directly the final _ValueT, not a string: accumulate
	the result checking for overflow at each digit.
	(num_get::do_get(bool&), num_get::do_get(long&),
	num_get::do_get(unsigned short&), num_get::do_get(unsigned int&),
	num_get::do_get(unsigned long&), num_get::do_get(long long&),
	num_get::do_get(unsigned long long&), num_get::do_get(void*&)):
	Use the new _M_extract_int, simplify.
	* src/locale-inst.cc (num_get::_M_extract_int(long&),
	num_get::_M_extract_int(unsigned short&),
	num_get::_M_extract_int(unsigned int&),
	num_get::_M_extract_int(unsigned long&),
	num_get::_M_extract_int(long long&),
	num_get::_M_extract_int(unsigned long long&): Instantiate.
	* src/locale_facets.cc (__num_base::_S_atoms_in): Reorder
        the chars in the natural order: abcdefABCDEF.

From-SVN: r74423
2003-12-08 15:37:03 +00:00
Paolo Carlini
142b798be5 2003-12-02 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
	(money_base::_S_construct_pattern): For case 3: and 4:
	exchanging 'if (__precedes)' and 'if (__space)' allows
	to factor out a few more assignments.

From-SVN: r74168
2003-12-02 09:16:30 +00:00
Paolo Carlini
1644f06da7 codecvt_members.cc (codecvt::do_in, [...]): More minor tweaks.
2003-11-30  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/codecvt_members.cc (codecvt::do_in,
	codecvt::do_length): More minor tweaks.

From-SVN: r74069
2003-11-30 19:10:50 +00:00
Paolo Carlini
11816ba280 codecvt_members.cc (codecvt::do_in): Minor stylistic tweak.
2003-11-30  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/codecvt_members.cc (codecvt::do_in):
	Minor stylistic tweak.

From-SVN: r74060
2003-11-30 15:18:27 +00:00
Paolo Carlini
5af91f0690 codecvt_members.cc (codecvt::do_length): Rewrite, using both mbsnrtowcs and mbrtowc in a loop...
2003-11-25  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/codecvt_members.cc (codecvt::do_length):
	Rewrite, using both mbsnrtowcs and mbrtowc in a loop: the
	former is very fast, but stops if encounters a NUL.
	(codecvt::do_out): Tweaks.
	(codecvt::do_in): Tweaks, improve the code dealing with errors.
	* testsuite/performance/wchar_t_length.cc: New.

From-SVN: r73934
2003-11-25 21:41:28 +00:00
Paolo Carlini
3c8797ae81 codecvt_members.cc (codecvt::do_in): Rewrite, using both mbsnrtowcs and mbrtowc in a loop...
2003-11-24  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/codecvt_members.cc (codecvt::do_in):
	Rewrite, using both mbsnrtowcs and mbrtowc in a loop: the
	former is very fast, but stops if encounters a NUL.
	(codecvt::do_out): Tweak.
	* testsuite/performance/wchar_t_in.cc: New.

2003-11-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h
	(__numpunct_cache<>::_M_cache): Set _M_allocated at the beginning
	in order to avoid memory leaks; simplify a bit.

From-SVN: r73893
2003-11-24 21:13:38 +00:00
Paolo Carlini
cc0c2f7986 2003-11-22 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
	(money_base::_S_construct_pattern): Factor out two assignments.

From-SVN: r73844
2003-11-22 18:47:13 +00:00
Paolo Carlini
f7ba331c2a 2003-11-21 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc
	(money_base::_S_construct_pattern): Factor out an assignment.

From-SVN: r73816
2003-11-21 20:55:49 +00:00
Paolo Carlini
0fd1870171 re PR libstdc++/11602 (codecvt<wchar_t, char, mbstate_t> is slow.)
2003-11-20  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/11602
	* config/locale/gnu/codecvt_members.cc (codecvt::do_out):
	Rewrite, using both wcsnrtombs and wcrtomb in a loop: the
	former is very fast, but stops if encounters a NUL.
	* testsuite/performance/wchar_t_out.cc: New, from the PR.

From-SVN: r73769
2003-11-20 19:24:03 +00:00
Paolo Carlini
1f33554abb codecvt_members.cc (do_out): If we can upper bound the total number of external chars to something smaller...
2003-11-19  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/gnu/codecvt_members.cc (do_out): If
	we can upper bound the total number of external chars
	to something smaller than __to_end - __to, avoid the
	temporary buffer, the memcopy and simplify the loop.
	* config/locale/generic/codecvt_members.cc (do_out):
	Likewise.

From-SVN: r73733
2003-11-19 11:38:40 +00:00
Paolo Carlini
4f36323260 c_locale.cc: Add back <cmath> and <cstdlib>.
2003-10-29  Paolo Carlini  <pcarlini@suse.de>

	* config/locale/generic/c_locale.cc: Add back <cmath>
	and <cstdlib>.

	* include/bits/locale_facets.tcc
	(num_get::_M_extract_float): Clean up.

From-SVN: r73036
2003-10-29 13:34:04 +00:00
Paolo Carlini
c9cca2c22c locale_facets.tcc: Remove some unnecessary includes.
2003-10-29  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc: Remove some unnecessary
	includes.
	* config/locale/generic/c_locale.cc: Include <cerrno> here.
	* config/locale/gnu/c_locale.cc: Likewise.

From-SVN: r73030
2003-10-29 10:08:05 +00:00
Benjamin Kosnik
bf5fe4734c locale_facets.h: Correct byname facets for "C" locale.
2003-10-22  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h: Correct byname facets for "C"
	locale.
	* config/locale/generic/ctype_members.cc: Same.
	* config/locale/generic/messages_members.h: Same.
	* config/locale/gnu/ctype_members.cc: Same.
	* config/locale/gnu/messages_members.h: Same.
	* include/bits/codecvt.h: Same.
	* src/ctype.cc: Same.
	* testsuite/22_locale/codecvt_byname/1.cc: New.
	* testsuite/22_locale/collate/1.cc: Edit.
	* testsuite/22_locale/collate_byname/1.cc: Derivation tests, move to...
	* testsuite/22_locale/collate_byname/named_equivalence.cc: ...here.
	* testsuite/22_locale/ctype/1.cc: Derivation tests.
	* testsuite/22_locale/ctype/11844.cc: Move...
	* testsuite/22_locale/ctype_base/11844.cc: ...here.
	* testsuite/22_locale/ctype_base/1.cc: Move mask bits here.
	* testsuite/22_locale/ctype_byname/1.cc: Name.
	* testsuite/22_locale/messages_byname/1.cc: New.
	* testsuite/22_locale/messages_byname/named_equivalence.cc: New.
	* testsuite/22_locale/moneypunct_byname/1.cc: Derivation test.
	* testsuite/22_locale/moneypunct_byname/named_equivalence.cc: New.
	* testsuite/22_locale/numpunct/1.cc: Edit.
	* testsuite/22_locale/numpunct_byname/2.cc: Move...
	* testsuite/22_locale/numpunct/members/char/3.cc: ...here.
	* testsuite/22_locale/numpunct_byname/1.cc: Derivation tests.
	* testsuite/22_locale/numpunct_byname/named_equivalence.cc: New.

From-SVN: r72814
2003-10-22 18:58:35 +00:00
Paolo Carlini
f991b1d853 re PR libstdc++/12540 (Memory leak in locale::locale(const char*))
2003-10-16  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/12540
	* config/locale/gnu/monetary_members.cc
	(moneypunct<wchar_t, true/false>::_M_initialize_moneypunct):
	Don't leak memory if new throws.
	* src/locale.cc (locale::locale(const char*)): In order not
	to leak memory in case new throws, use a basic_string type
	for __res too and avoid strdup.

From-SVN: r72553
2003-10-16 17:24:07 +00:00
Paolo Carlini
f5677b1560 codecvt_specializations.h: Change #ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS to a comment.
2003-10-12  Paolo Carlini  <pcarlini@unitus.it>

	* config/locale/ieee_1003.1-2001/codecvt_specializations.h:
	Change #ifdef _GLIBCXX_RESOLVE_LIB_DEFECTS to a comment.
	* include/bits/basic_string.tcc: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/bits/istream.tcc: Likewise.
	* include/bits/locale_facets.tcc: Likewise.
	* include/bits/ostream.tcc: Likewise.
	* include/bits/stl_function.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_pair.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/streambuf_iterator.h
	* include/std/std_iosfwd.h: Likewise.
	* include/std/std_istream.h: Likewise.
	* include/std/std_sstream.h: Likewise.
	* include/std/std_streambuf.h: Likewise.
	* src/ios.cc: Likewise.
	* include/bits/c++config:
	Comment out #define _GLIBCXX_RESOLVE_LIB_DEFECTS 1.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Tweak a
	dg-error directive due to removal of a blank line.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.

From-SVN: r72392
2003-10-12 10:12:09 +00:00
Paolo Carlini
2f800bccec re PR libstdc++/11844 (Incorrect values of ctype_base::alnum and ctype_base::graph)
2003-10-09  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/11844
	* config/os/aix/ctype_base.h: Fix 'alnum' and 'graph'
	to conform to the requirements of 22.2.1.
	* config/os/bsd/freebsd/ctype_base.h: Likewise.
	* config/os/djgpp/ctype_base.h: Likewise.
	* config/os/generic/ctype_base.h: Likewise.
	* config/os/gnu-linux/ctype_base.h: Likewise.
	* config/os/hpux/ctype_base.h: Likewise.
	* config/os/irix/irix6.5/ctype_base.h: Likewise.
	* config/os/solaris/solaris2.6/ctype_base.h: Likewise.
	* config/os/solaris/solaris2.7/ctype_base.h: Likewise.
	* testsuite/22_locale/ctype/11844.cc: New.

	* config/locale/generic/ctype_members.cc (do_is):
	Generically, use a bitmasksize of 15 (instead of 10), since
	we don't know the numerical encoding of the various categories
	in the underlying /usr/include/ctype.h.

From-SVN: r72281
2003-10-09 19:10:56 +00:00
Paolo Carlini
ba9b12d1d2 re PR libstdc++/11740 (ctype<wchar_t>::do_is(mask, wchar_t) doesn't handle multiple bits in mask.)
2003-10-06  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/11740
	* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is):
	Fix to actually return (M & m) != 0 as per 22.2.1.1.2.
	* config/locale/generic/ctype_members.cc: Same.
	* testsuite/22_locale/ctype/is/wchar_t/11740.cc: New.

From-SVN: r72167
2003-10-06 22:32:59 +00:00
Benjamin Kosnik
bb1b12ec0a locale_classes.h (locale::facet::_S_get_c_name): Add.
2003-10-02  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_classes.h (locale::facet::_S_get_c_name): Add.
	* src/locale.cc: Define.
	* src/localename.cc: Use it.
	* config/locale/generic/time_members.h: Same.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/time_members.h: Same.

From-SVN: r72050
2003-10-02 23:06:13 +00:00
Benjamin Kosnik
8ae8113683 [multiple changes]
2003-10-02  Benjamin Kosnik  <bkoz@redhat.com>

	* config/linker-map.gnu: Export _S_get_c_locale instead of
	_S_c_locale object.

2003-10-02  Petur Runolfsson  <peturr02@ru.is>

	* config/locale/generic/c_locale.cc
	(category_names, locale::_S_categories): Const qualify.
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/generic/time_members.h (__timepunct::__timepunct):
	Copy string contents before assigning to _M_name_timepunct,
	qualify strcpy and strlen with std::.
	* config/locale/gnu/time_members.h: Same.
	* config/locale/gnu/messages_members.h (messages::messages):
	Copy string contents before assigning to _M_name_messages,
	qualify strcpy and strlen with std::.
	* config/os/gnu-linux/ctype_noninline.h
	(ctype<char>::classic_table()): Don't call locale::classic().
	* include/bits/locale_classes.h
	(locale::_S_categories): Const qualify.
	(locale::_S_once, locale::_S_initialize_once,
	locale::facet::_S_once, locale::facet::_S_initialize_once,
	locale::facet::_S_get_c_locale): Declare.
	(locale::_S_initialize): Don't define.
	(locale::facet::_S_c_locale): Make private.
	(locale::facet::_S_c_name): Same, const qualify.
	(locale::_Impl::_Impl(facet**, size_t, bool)): Drop unused
	parameters, add throw() specifier.
	* include/bits/locale_facets.h (__timepunct::_M_name_timepunct,
	messages::_M_name_messages): Const qualify.
	* src/locale.cc
	(locale::_S_once, locale::facet::_S_once): Define.
	(locale::classic): Move initialization code...
	(locale::_S_initialize_once): ...here.
	(locale::_S_initialize): Call _S_initialize_once through
	__gthread_once.
	(locale::facet::_S_initialize_once): Initialize _S_c_locale.
	(locale::facet::_S_get_c_locale): Call _S_initialize_once through
	__gthread_once before returning _S_c_locale.
	* src/localename.cc (locale::_Impl::_Impl(facet**, size_t, bool)):
	Drop unused parameters, add throw() specifier, don't initialize
	locale::facet::_S_c_locale and _S_c_name.

	* config/locale/generic/messages_members.h:
	Replace _S_c_locale with _S_get_c_locale().
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/numeric_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.
	* config/os/gnu-linux/ctype_noninline.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* src/codecvt.cc: Same.
	* src/ctype.cc: Same.

From-SVN: r72040
2003-10-02 16:56:39 +00:00
Benjamin Kosnik
465ad0c712 ctype_members.cc (ctype<wchar_t>::do_is): Fix.
2003-09-25  Benjamin Kosnik  <bkoz@redhat.com>

	* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is): Fix.
	* config/locale/generic/ctype_members.cc: Same.
	* testsuite/22_locale/ctype/is/char/1.cc: Initialize mask.
	* testsuite/22_locale/ctype/is/wchar_t/1.cc: Same.

	* config/os/generic/ctype_inline.h: Update.

From-SVN: r71780
2003-09-25 16:37:24 +00:00