Commit Graph

103 Commits

Author SHA1 Message Date
Paolo Carlini
83b83ae97a re PR libstdc++/37522 (Incorrect vswprintf prototype breaks __to_xstring)
2008-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/37522
	* config/os/mingw32/os_defines.h: Define _GLIBCXX_HAVE_BROKEN_VSWPRINTF
	* include/bits/basic_string.h: Guard string conversions with 
	!defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF) too.
	* testsuite/lib/libstdc++.exp (check_v3_target_string_conversions):
	New.
	* testsuite/lib/dg-options.exp (dg-require-string-conversions): New.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
	Use the latter.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	stoull.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	to_string.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
	Likewise.

From-SVN: r141382
2008-10-27 15:01:28 +00:00
Jason Merrill
988499f434 Add initializer_list support as per N2679.
* include/debug/unordered_map: Add initializer_list support.
        * include/debug/safe_association.h: Likewise.
        * include/debug/unordered_set: Likewise.
        * include/debug/vector: Likewise.
        * include/debug/deque: Likewise.
        * include/debug/map.h: Likewise.
        * include/debug/set.h: Likewise.
        * include/debug/string: Likewise.
        * include/debug/list: Likewise.
        * include/debug/multimap.h: Likewise.
        * include/tr1_impl/unordered_map: Likewise.
        * include/tr1_impl/hashtable: Likewise.
        * include/tr1_impl/unordered_set: Likewise.
        * include/tr1_impl/regex: Likewise.
        * include/std/valarray: Likewise.
        * include/std/unordered_map: Likewise.
        * include/std/unordered_set: Likewise.
        * include/bits/stl_list.h: Likewise.
        * include/bits/stl_map.h: Likewise.
        * include/bits/stl_set.h: Likewise.
        * include/bits/basic_string.h: Likewise.
        * include/bits/basic_string.tcc: Likewise.
        * include/bits/stl_multimap.h: Likewise.
        * include/bits/stl_vector.h: Likewise.
        * include/bits/stl_deque.h: Likewise.
        * include/bits/stl_multiset.h: Likewise.
        * include/bits/stl_bvector.h: Likewise.
        * include/ext/vstring.h: Likewise.
        * include/ext/rc_string_base.h: Likewise.
        * include/ext/sso_string_base.h: Likewise.
        * src/Makefile.am (w?string-inst): Build with -std=gnu++0x.
        * src/Makefile.in: Likewise.
        * config/abi/pre/gnu.ver: Add new w?string exports.
...

From-SVN: r138043
2008-07-21 15:40:39 -04:00
Paolo Carlini
a5a6b58639 string_conversions.cc: Remove.
2008-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* src/string_conversions.cc: Remove.
	* config/abi/pre/gnu.ver: Delete exports.
	* src/Makefile.am: Update.
	* include/ext/string_conversions.h: Add.
	* include/Makefile.am: Update.
	* include/bits/basic_string.h: Include string_conversions.h,
	define numeric conversion functions.
	* include/ext/vstring.h: Likewise.
	* src/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.

From-SVN: r137253
2008-06-29 15:46:50 +00:00
Paolo Carlini
7364f2868c basic_string.h (stod, [...]): Declare in C++0x mode.
2008-06-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/basic_string.h (stod, stof, stoi, stol, stold, stoll,
	stoul, stoull, to_string, to_wstring): Declare in C++0x mode.
	* src/string_conversions.cc: Add.
	* src/Makefile.am: Update.
	* config/abi/pre/gnu.ver: Adjust exports.
	* src/Makefile.in: Regenerate.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
	New.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	to_string.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stod.cc: New.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stof.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoi.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stol.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stold.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoll.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoul.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoull.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	to_wstring.cc: Likewise.

From-SVN: r136841
2008-06-16 09:58:54 +00:00
Benjamin Kosnik
4312e020f1 [multiple changes]
2008-01-18  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/*: To...
	* doc/*: ...here.
	* testsuite/Makefile.am: Move doc-performance to...
	* Makefile.am: Add doc to SUBDIRS, move doxygen-* rules to...
	* doc/Makefile.am: Consolidate documentation creation here.
	(doc-doxygen-html): New.
	(doc-doxygen-man): New.
	(doc-performance): New.
	* doc/Makefile.in: New.
	* acinclude.m4 (glibcxx_SUBDIRS): Add doc directory.
	* doc/doxygen/guide.html: Edit for unified html configuration.
	* doc/doxygen/mainpage.html: Same.
	* doc/doxygen/run_doxygen: Same, more namespace fixups for man
	generation.
	* doc/doxygen/user.cfg.in: Update for doxygen 1.5.4.
	
	* include/tr1_impl/random: Remove maint from doxygen markup.
	* include/tr1_impl/functional: Same.
	* include/std/tuple: Same.
	* include/std/streambuf: Same.
	* include/std/bitset: Same.
	* include/std/limits: Same.
	* include/std/fstream: Same.
	* include/std/istream: Same.
	* include/std/sstream: Same.
	* include/ext/pool_allocator.h: Same.
	* include/ext/rc_string_base.h: Same.
	* include/bits/basic_ios.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_iterator_base_types.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/postypes.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/stl_tempbuf.h: Same.
	* include/bits/stl_construct.h: Same.
	* include/bits/stl_relops.h: Same.
	* include/tr1/tuple: Same.
	* include/backward/auto_ptr.h: Same.

	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Fixups for line number changes.	
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Same.

	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* libmath/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

	* scripts/make_graphs.py: Correct paths for new layout.
	
2008-01-17  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (AC_LC_MESSAGES): Remove serial.
	* linkage.m4 (AC_REPLACE_MATHFUNCS): Same.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

From-SVN: r131625
2008-01-18 08:16:51 +00:00
Jonathan Wakely
ee5ca78921 valarray-inst.cc, [...]: Fix comment typos.
* src/valarray-inst.cc, include/ext/atomicity.h,
	include/ext/concurrence.h, include/bits/basic_string.h,
	include/bits/fstream.tcc, include/ext/vstring.h: Fix comment typos.

From-SVN: r128915
2007-10-01 21:49:39 +01:00
Paolo Carlini
bd12160ab8 re PR libstdc++/32907 (Inefficient operator== in std::string)
2007-07-27  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/32907
	* include/bits/basic_string.h (operator==(const basic_string<_CharT>&,
	const basic_string<_CharT>&)): Add.
	(operator!=): Forward to operator==.
	* include/ext/vstring.h(operator==(const __versa_string<_CharT,
	std::char_traits<_CharT>, std::allocator<_CharT>, _Base>&,
	const __versa_string<_CharT, std::char_traits<_CharT>,
	std::allocator<_CharT>, _Base>&)): Add.
	(operator!=): Forward to operator==.

	* include/ext/sso_string_base.h (_M_compare): Remove.

From-SVN: r126988
2007-07-27 17:25:04 +00:00
Paolo Carlini
25959e29ee DR 438, [DR].
2007-04-27  Paolo Carlini  <pcarlini@suse.de>

	DR 438, [DR].
	* include/bits/basic_string.h (_S_construct_aux(_InIterator,
	_InIterator, const _Alloc&, __true_type)): Do not cast the
	second argument.
	* include/ext/rc_string_base.h (_S_construct_aux(_Integer,
	_Integer, const _Alloc&, std::__true_type)): Likewise.
	* include/ext/sso_string_base.h (_M_construct_aux(_InIterator,
	_InIterator, std::__true_type)): Likewise.
	* include/bits/stl_deque.h (_M_initialize_dispatch(_Integer,
	_Integer, __true_type)): Cast the first argument.
	(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do
	not cast the arguments.
	(_M_insert_dispatch(iterator, _Integer, _Integer, __true_type)):
	Likewise.
	* include/bits/stl_list.h (_M_initialize_dispatch(_Integer,
	_Integer, __true_type)): Likewise.
	(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do
	not cast both arguments.
	* include/bits/stl_bvector.h (_M_initialize_dispatch(_Integer,
	_Integer, __true_type)): Cast the first argument.
	(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do not
	cast the arguments.
	* include/bits/stl_vector.h (_M_initialize_dispatch(_Integer,
	_Integer, __true_type)): Cast the first argument.
	(_M_assign_dispatch(_Integer, _Integer, __true_type)): Do not
	cast the arguments.
	(_M_insert_dispatch(iterator, _Integer, _Integer, __true_type)):
	Likewise.
	* testsuite/21_strings/basic_string/requirements/dr438/
	constructor.cc: New.
	* testsuite/ext/vstring/requirements/dr438/constructor.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/deque/
	assign_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/deque/
	constructor.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/deque/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/deque/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/deque/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/list/
	assign_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/list/
	constructor.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/list/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/list/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/list/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	assign_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	constructor.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	bool/constructor.cc: Likewise.
	* docs/html/ext/howto.html: Add an entry for DR 438.

From-SVN: r124243
2007-04-27 22:59:36 +00:00
Paolo Carlini
6725add54e numeric_traits.h: Do not include <limits>.
2007-04-13  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/numeric_traits.h: Do not include <limits>.
	(__numeric_traits_integer::__is_signed, __digits): Add.
	(__numeric_traits_floating::__digits10, __max_exponent10): Add.
	* src/istream.cc (ignore<char>(streamsize, int_type), operator>>
	(basic_istream<char>&, char*), ignore<wchar_t>(streamsize,
	int_type)): Use the latter.
	* src/compatibility.cc (ignore<char>(streamsize),
	ignore<wchar_t>(streamsize)): Likewise.
	* include/ext/vstring_util.h (__vstring_utility<>::_S_compare):
	Likewise.
	* include/bits/stl_memory.h (__get_temporary_buffer): Likewise.
	* include/bits/stl_algobase.h (lexicographical_compare(const char*,
	const char*, const char*, const char*)): Likewise.
	* include/bits/locale_facets.tcc (num_get<>::_M_extract_int(_InIter,
	_InIter, ios_base&, ios_base::iostate&, _ValueT&),
	num_put<>::_M_insert_int(_OutIter, ios_base&, _CharT, _ValueT),
	num_put<>::_M_insert_float(_OutIter, ios_base&, _CharT, char,
	_ValueT), collate<>::do_hash(const _CharT*, const _CharT*)): Likewise.
	* include/bits/basic_string.h (basic_string<>::_S_compare): Likewise.
	* include/bits/istream.tcc (operator>>(short&), operator>>(int&),
	ignore(streamsize), ignore(streamsize, int_type), operator>>
	(basic_istream<>&, _CharT*)): Likewise.
	* include/bits/stl_bvector.h (vector<bool>::max_size): Likewise.
	* include/tr1/functional_hash.h (struct hash<long double>): Likewise.
	* include/std/istream: Do not include <limits>.
	* include/tr1/cmath: Include <limits>.
	* testsuite/23_containers/vector/bool/capacity/29134.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc:
	Likewise.
	* testsuite/27_io/ios_base/storage/2.cc: Likewise.

	* include/tr1/hashtable: Do not include the whole <iterator>.

From-SVN: r123779
2007-04-13 10:54:37 +00:00
Paolo Carlini
11202768fe PR libstdc++/28277 (partial: vstring bits)
2007-04-10  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: vstring bits)
	* include/bits/ostream_insert.h: New.
	* include/Makefile.am: Add.
	* include/ext/vstring.h (operator<<(basic_ostream<>&,
	const __versa_string<>&): Forward to __ostream_insert.
	* include/bits/basic_string.h (operator<<(basic_ostream<>&,
	const string<>&)): Likewise.
	* include/std/ostream (operator<<(basic_ostream<>&, _CharT),
	operator<<(basic_ostream<char,>&, char), operator<<(basic_ostream<>&,
	const _CharT*), operator<<(basic_ostream<char,>&, const char*)):
	Likewise.
	* include/ext/vstring.tcc (operator<<(basic_ostream<>&,
	const __versa_string<>&)): Remove.
	(class basic_ostream): Remove friend declarations.
	(basic_ostream<>::_M_write(char_type, streamsize),
	_M_insert(const char_type*, streamsize)): Remove.
	* include/bits/ostream.tcc (_M_insert(const char_type*, streamsize)):
	Remove definition.
	(operator<<(basic_ostream<>&, const char*)): Use __ostream_insert.
	* config/abi/pre/gnu.ver: Adjust.
	* src/ostream-inst.cc: Add __ostream_insert instantiations.
	* include/bits/locale_facets.h (__pad<>::_S_pad): Remove __num
	parameter.
	* include/bits/locale_facets.tcc (__pad<>::_S_pad): Adjust.
	(num_put<>::_M_pad(_CharT, streamsize, ios_base&, _CharT*,
	const _CharT*, int&)): Likewise.
	* include/Makefile.in: Rebuild.
	* testsuite/ext/vstring/inserters_extractors/char/28277.cc: New.
	* testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc: New.

	* include/ext/vstring_util.h: Do not include the whole <locale>.
	* include/ext/vstring.tcc (operator>>(basic_istream<>&,
	__versa_string<>&, getline(basic_istream<>&, __versa_string<>&,
	_CharT)): Tweak to refer to ios_base as a base of istream; do not
	refer to non-standard types of istream.
	* include/bits/istream.tcc (operator>>(basic_istream<>&, _CharT*),
	ws(basic_istream<>&)): Do not refer to non-standard types of istream.
	* include/std/bitset (operator>>(std::basic_istream<>&, bitset<>&)):
	Avoid using basic_streambuf<>*.

	* include/bits/istream.tcc (operator>>(basic_istream<>&,
	basic_string<>&), getline(basic_istream<>&, basic_string<>&, _CharT)):
	Move...
	* include/bits/basic_string.tcc: ... here; tweak to refer to ios_base
	as a base of istream; do not refer to non-standard types of istream.
	* include/std/string: Tweak includes.

	* include/ext/type_traits.h (__is_null_pointer): Add.
	* include/ext/rc_string_base.h: Use it.
	* include/ext/sso_string_base.h: Likewise.
	* include/bits/basic_string.tcc (__is_null_pointer): Remove, use
	the above.
	* include/ext/vstring_util.h (__vstring_utility<>::_S_is_null_pointer):
	Remove.

From-SVN: r123692
2007-04-10 10:38:50 +00:00
Paolo Carlini
9521dd6bd1 basic_string.h (basic_string<>::_S_compare): Add.
2007-01-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (basic_string<>::_S_compare): Add.
	(compare(const basic_string&)): Use it.
	* include/bits/basic_string.tcc (compare(size_type, size_type,
	const basic_string&), compare(size_type, size_type,
	const basic_string&, size_type, size_type), compare(const _CharT*),
	compare(size_type, size_type, const _CharT*), compare(size_type,
	size_type, const _CharT*, size_type)): Likewise.
	* include/ext/vstring_util.h (__vstring_utility<>::_S_compare): Add.
	* include/ext/vstring.h (compare(const __versa_string&)): Use it.
	* include/ext/vstring.tcc (compare(size_type, size_type,
	const __versa_string&), compare(size_type, size_type,
	const __versa_string&, size_type, size_type), compare(const _CharT*),
	compare(size_type, size_type, const _CharT*), compare(size_type,
	size_type, const _CharT*, size_type)): Likewise.

From-SVN: r120896
2007-01-18 12:03:35 +00:00
Benjamin Kosnik
143c27b065 localefwd.h: Consistent @file placement...
2006-12-05  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/localefwd.h: Consistent @file placement, use
        include/ as part of the path for files that have shadows instead of no
        name.
	* include/bits/valarray_after.h: Same.
	* include/bits/gslice_array.h: Same.
	* include/bits/gslice.h: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/indirect_array.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/postypes.h: Same.
	* include/bits/codecvt.h: Same.
	* include/bits/mask_array.h: Same.
	* include/bits/slice_array.h: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/stringfwd.h: Same.
	* include/bits/c++config: Same.
	* include/bits/valarray_array.h: Same.
	* include/bits/valarray_before.h: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/c/std_cerrno.h: Same.
	* include/precompiled/extc++.h: Same.
	* include/precompiled/stdtr1c++.h: Same.
	* include/precompiled/stdc++.h: Same.
	* include/tr1/cinttypes: Same.
	* include/tr1/fenv.h: Same.
	* include/tr1/mu_iterate.h: Same.
	* include/tr1/cstdio: Same.
	* include/tr1/limits.h: Same.
	* include/tr1/ctgmath: Same.
	* include/tr1/cstdarg: Same.
	* include/tr1/tuple: Same.
	* include/tr1/float.h: Same.
	* include/tr1/stdint.h: Same.
	* include/tr1/tuple_iterate.h: Same.
	* include/tr1/type_traits_fwd.h: Same.
	* include/tr1/hashtable_policy.h: Same.
	* include/tr1/cfenv: Same.
	* include/tr1/wctype.h: Same.
	* include/tr1/ref_fwd.h: Same.
	* include/tr1/bind_repeat.h: Same.
	* include/tr1/utility: Same.
	* include/tr1/climits: Same.
	* include/tr1/type_traits: Same.
	* include/tr1/stdlib.h: Same.
	* include/tr1/cwchar: Same.
	* include/tr1/stdio.h: Same.
	* include/tr1/ref_wrap_iterate.h: Same.
	* include/tr1/cstdint: Same.
	* include/tr1/memory: Same.
	* include/tr1/cstdbool: Same.
	* include/tr1/cwctype: Same.
	* include/tr1/bind_iterate.h: Same.
	* include/tr1/math.h: Same.
	* include/tr1/random: Same.
	* include/tr1/tuple_defs.h: Same.
	* include/tr1/cstdlib: Same.
	* include/tr1/unordered_map: Same.
	* include/tr1/boost_shared_ptr.h: Same.
	* include/tr1/cctype: Same.
	* include/tr1/random.tcc: Same.
	* include/tr1/wchar.h: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/cmath: Same.
	* include/tr1/stdbool.h: Same.
	* include/tr1/ctime: Same.
	* include/tr1/functional: Same.
	* include/tr1/unordered_set: Same.
	* include/tr1/inttypes.h: Same.
	* include/tr1/functional_iterate.h: Same.
	* include/tr1/repeat.h: Same.
	* include/tr1/complex: Same.
	* include/tr1/cfloat: Same.
	* include/tr1/ctype.h: Same.
	* include/tr1/stdarg.h: Same.
	* include/tr1/tgmath.h: Same.
	* include/tr1/array: Same.
	* include/tr1/common.h: Same.
	* include/std/std_valarray.h: Same.
	* include/std/std_iostream.h: Same.
	* include/std/std_queue.h: Same.
	* include/std/std_algorithm.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/std/std_iterator.h: Same.
	* include/std/std_ios.h: Same.
	* include/std/std_bitset.h: Same.
	* include/std/std_iosfwd.h: Same.
	* include/std/std_set.h: Same.
	* include/std/std_iomanip.h: Same.
	* include/std/std_fstream.h: Same.
	* include/std/std_functional.h: Same.
	* include/std/std_numeric.h: Same.
	* include/std/std_vector.h: Same.
	* include/std/std_deque.h: Same.
	* include/std/std_stdexcept.h: Same.
	* include/std/std_utility.h: Same.
	* include/std/std_stack.h: Same.
	* include/std/std_string.h: Same.
	* include/std/std_complex.h: Same.
	* include/std/std_memory.h: Same.
	* include/std/std_ostream.h: Same.
	* include/std/std_list.h: Same.
	* include/std/std_map.h: Same.
	* include/std/std_sstream.h: Same.
	* include/c_std/std_csignal.h: Same.
	* include/c_std/std_cstdlib.h: Same.
	* include/c_std/std_cstdio.h: Same.
	* include/c_std/std_cstdarg.h: Same.
	* include/c_std/std_cctype.h: Same.
	* include/c_std/std_cerrno.h: Same.
	* include/c_std/std_cmath.h: Same.
	* include/c_std/std_ctime.h: Same.
	* include/c_std/std_clocale.h: Same.
	* include/c_std/std_climits.h: Same.
	* include/c_std/std_cassert.h: Same.
	* include/c_std/cmath.tcc
	* include/c_std/std_csetjmp.h: Same.
	* include/c_std/std_cwchar.h: Same.
	* include/c_std/std_cfloat.h: Same.
	* include/c_std/std_cstring.h: Same.
	* include/c_std/std_cstddef.h: Same.
	* include/c_std/std_cwctype.h: Same.

	* config/locale/gnu/c_locale.h: Namespace scope in all files.
	* config/locale/gnu/messages_members.h: Same.
	* config/locale/gnu/c++locale_internal.h: Same.
	* config/locale/gnu/time_members.h: Same.
	* config/locale/ieee_1003.1-2001/c_locale.h: Same.
	* config/locale/ieee_1003.1-2001/messages_members.h: Same.
	* config/locale/generic/c_locale.h: Same.
	* config/locale/generic/messages_members.h: Same.
	* config/locale/generic/time_members.h: Same.
	* config/allocator/mt_allocator_base.h: Same.
	* config/allocator/malloc_allocator_base.h: Same.
	* config/allocator/new_allocator_base.h: Same.
	* config/allocator/pool_allocator_base.h: Same.
	* config/allocator/bitmap_allocator_base.h: Same.
	* config/os/windiss/ctype_noninline.h: Same.
	* config/os/windiss/os_defines.h: Same.
	* config/os/windiss/ctype_inline.h: Same.
	* config/os/newlib/ctype_noninline.h: Same.
	* config/os/newlib/os_defines.h: Same.
	* config/os/newlib/ctype_inline.h: Same.
	* config/os/aix/ctype_noninline.h: Same.
	* config/os/aix/os_defines.h: Same.
	* config/os/aix/ctype_inline.h: Same.
	* config/os/vxworks/ctype_noninline.h: Same.
	* config/os/vxworks/os_defines.h: Same.
	* config/os/vxworks/ctype_inline.h: Same.
	* config/os/hpux/ctype_noninline.h: Same.
	* config/os/hpux/os_defines.h: Same.
	* config/os/hpux/ctype_inline.h: Same.
	* config/os/mingw32/ctype_noninline.h: Same.
	* config/os/mingw32/os_defines.h: Same.
	* config/os/mingw32/ctype_inline.h: Same.
	* config/os/gnu-linux/ctype_noninline.h: Same.
	* config/os/gnu-linux/os_defines.h: Same.
	* config/os/gnu-linux/ctype_inline.h: Same.
	* config/os/tpf/ctype_noninline.h: Same.
	* config/os/tpf/os_defines.h: Same.
	* config/os/tpf/ctype_inline.h: Same.
	* config/os/uclibc/ctype_noninline.h: Same.
	* config/os/uclibc/os_defines.h: Same.
	* config/os/uclibc/ctype_inline.h: Same.
	* config/os/djgpp/ctype_noninline.h: Same.
	* config/os/djgpp/os_defines.h: Same.
	* config/os/djgpp/ctype_inline.h: Same.
	* config/os/qnx/qnx6.1/ctype_noninline.h: Same.
	* config/os/qnx/qnx6.1/ctype_inline.h: Same.
	* config/os/bsd/netbsd/ctype_noninline.h: Same.
	* config/os/bsd/netbsd/ctype_inline.h: Same.
	* config/os/bsd/darwin/ctype_noninline.h: Same.
	* config/os/bsd/darwin/ctype_inline.h: Same.
	* config/os/bsd/freebsd/ctype_noninline.h: Same.
	* config/os/bsd/freebsd/ctype_inline.h: Same.
	* config/os/irix/irix5.2/ctype_noninline.h: Same.
	* config/os/irix/irix5.2/ctype_inline.h: Same.
	* config/os/irix/irix6.5/ctype_noninline.h: Same.
	* config/os/irix/irix6.5/ctype_inline.h: Same.
	* config/os/solaris/solaris2.5/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.5/ctype_inline.h: Same.
	* config/os/solaris/solaris2.6/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.6/ctype_inline.h: Same.
	* config/os/solaris/solaris2.7/ctype_noninline.h: Same.
	* config/os/solaris/solaris2.7/ctype_inline.h: Same.
	* config/os/generic/ctype_noninline.h: Same.
	* config/os/generic/os_defines.h: Same.
	* config/os/generic/ctype_inline.h: Same.
	* config/cpu/arm/cxxabi_tweaks.h: Same.
	* config/cpu/powerpc/cpu_defines.h: Same.
	* config/cpu/generic/cxxabi_tweaks.h: Same.
	* config/cpu/generic/cpu_defines.h: Same.
	* config/cpu/generic/atomic_word.h: Same.
	* config/io/c_io_stdio.h: Same.
	* config/abi/compatibility.h: Same.

	* docs/doxygen/user.cfg.in: Adjust file list.

From-SVN: r119561
2006-12-05 23:24:07 +00:00
Paolo Carlini
70c99f6c02 istream.tcc (getline(basic_istream<>&, basic_string<>&)): Move...
2006-10-15  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (getline(basic_istream<>&,
	basic_string<>&)): Move...
	* include/bits/basic_string.h: ... here.
	(operator<<(basic_ostream<>&, const basic_string<>&)): Mark inline.

From-SVN: r117745
2006-10-15 14:43:50 +00:00
Paolo Carlini
ec2061a9bf PR libstdc++/28277 (partial: ostream bits 2)
2006-10-13  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: ostream bits 2)
	* include/std/std_ostream.h (basic_ostream<>::_M_insert(const
	char_type*, streamsize)): New.
	(basic_ostream<>::_M_write(char_type, streamsize)): Likewise.
	(operator<<(basic_ostream<>&, _CharT), operator<<(basic_ostream<>&,
	char), operator<<(basic_ostream<>&, const _CharT*),
	operator<<(basic_ostream<>&, const char*)): Use the latter.
	* include/bits/ostream.tcc (basic_ostream<>::_M_insert(const
	char_type*, streamsize)): Define.
	(operator<<(basic_ostream<>&, const char*)): Use the latter.
	(operator<<(basic_ostream<>&, _CharT), operator<<(basic_ostream<>&,
	char), operator<<(basic_ostream<>&, const _CharT*),
	operator<<(basic_ostream<>&, const char*),
	operator<<(basic_ostream<>&, const basic_string<>&)): Remove.
	* include/bits/basic_string.h (operator<<(basic_ostream<>&,
	const basic_string<>&)): Use the latter, implement DR 586.
	* config/abi/pre/gnu.ver: Adjust, export the new _M_insert.
	* docs/html/ext/howto.html: Add an entry for DR 586.
	* testsuite/21_strings/basic_string/inserters_extractors/char/
	28277.cc: New.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
	28277.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/char/
	28277-3.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/char/
	28277-4.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
	28277-2.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
	28277-3.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
	28277-4.cc: Likewise.

From-SVN: r117689
2006-10-13 09:00:31 +00:00
Paolo Carlini
9f23fee697 re PR libstdc++/29368 (wrong STL docs for rfind())
2006-10-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29368
	* include/bits/basic_string.h: Adjust rfind documentation.
	* include/ext/vstring.h: Likewise.

From-SVN: r117496
2006-10-06 11:47:56 +00:00
Benjamin Kosnik
2e362c7474 atomicity.h: Move to...
2006-09-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/atomicity.h: Move to...
	* include/ext/atomicity.h: ...here.	
	* include/bits/concurrence.h: Move to...
	* include/ext/concurrence.h: ...here.
	* include/Makefile.am (ext_headers): Additions.
	(bits_headers): Subtractions.
	* include/Makefile.in: Regenerate.

	* include/ext/bitmap_allocator.h (_Mutex), __threads_enabled,
	_Lock, _Auto_Lock): Subsume into...
	* include/bits/concurrence.h (__mutex): ..this. Error check
	locking and unlocking.	
	(lock): Uglify to...
	(__scoped_lock): Use __mutex. 
	(__glibcxx_mutex_define_initialized): Remove.
	(__glibcxx_mutex_type): Remove.

	* include/tr1/boost_shared_ptr.h: Formating tweaks, adjustments.
	(_Lock_policy): Move from here...
	* include/ext/concurrence.h: ... to here.
	(__shared_ptr_default_lock_mode): To __default_lock_policy.
	(_S_lockfree): To _S_atomic.
	Document.

	* libsupc++/guard.cc (static_mutex): Subsume into and fixup for...
	* include/ext/concurrence.h (__recursive_mutex): ...this. Error
	check locking and unlocking.
	* libsupc++/eh_alloc.cc: Use __scoped_lock.

	* config/os/aix/atomicity.h: Fixups for include paths, mutex to
	__scoped_mutex change, removal of locking defines.
	* config/os/irix/atomicity.h: Same.
	* config/cpu/cris/atomicity.h: Same.
	* config/cpu/m68k/atomicity.h: Same.
	* config/cpu/hppa/atomicity.h: Same.
	* config/cpu/mips/atomicity.h: Same.
	* config/cpu/sparc/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/i486/atomicity.h: Same.
	* config/cpu/sh/atomicity.h: Same.
	* config/cpu/generic/atomicity_mutex/atomicity.h: Same.
	* include/ext/pool_allocator.h: Same.
	* include/ext/bitmap_allocator.h: Same.
	* include/ext/rc_string_base.h: Same.
	* include/ext/mt_allocator.h: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/ios_base.h: Same.
	* include/tr1/memory: Same.
	* src/pool_allocator.cc: Same.
	* src/mt_allocator.cc: Same.
	* src/locale_init.cc: Same.
	* src/ios.cc: Same.
	* src/locale.cc: Same.
	* src/bitmap_allocator.cc: Same.
	* src/ios_init.cc: Same.
	* src/debug.cc: Same.

From-SVN: r116942
2006-09-14 09:48:15 +00:00
Paolo Carlini
b7ee72de2d re PR libstdc++/24704 (__gnu_cxx::__exchange_and_add is called even for single threaded applications)
2006-05-24  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24704
	* include/bits/atomicity.h (__exchange_and_add_single,
	__atomic_add_single): New, single thread versions of the atomic
	functions.
	(__exchange_and_add_dispatch, __atomic_add_dispatch): New,
	depending on __GTHREADS and __gthread_active_p() dispatch either
	to the above or to the existing atomic functions.
	* include/ext/pool_allocator.h: Update callers.
	* include/ext/rc_string_base.h: Likewise.
	* include/bits/locale_classes.h: Likewise.
	* include/bits/basic_string.h: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/tr1/boost_shared_ptr.h: Likewise.
	* src/ios.cc: Likewise.
	* src/locale.cc: Likewise.
	* src/ios_init.cc: Likewise.

From-SVN: r114044
2006-05-24 16:37:42 +00:00
Benjamin Kosnik
3cbc7af037 c++config: Add in revised namespace associations.
2005-12-18  Benjamin Kosnik  <bkoz@redhat.com>
	
	* include/bits/c++config: Add in revised namespace associations.
	_GLIBCXX_BEGIN_NAMESPACE: New macro.
	_GLIBCXX_END_NAMESPACE: Same.
	_GLIBCXX_BEGIN_NESTED_NAMESPACE: Same.
	_GLIBCXX_END_NESTED_NAMESPACE: Same.
	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace.
	* configure: Regenerated.
	* config.h.in: Same.
	* config/abi/pre/gnu-versioned-namespace.ver: New.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested
	debug mode items. 
	* include/Makefile.am (${host_builddir}/c++config.h): Fill in
	values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION.
	* include/Makefile.in: Regnerate.
	* src/compatibility.cc: Alias new, nested definitions to exported
	symbols from non-nested __gnu_debug.
	* src/Makefile.am:  Add in ENABLE_SYMVERS_GNU_NAMESPACE.
	* src/Makefile.in: Regenerate.
	
	* docs/html/debug_mode.html: Revise for nested design.
	* docs/html/debug.html: Use debug qualifications instead of
	__gnu_debug.
	* docs/html/configopts.html: Revise documentation for
	--enable-symvers.
	
	* include/debug/formatter: Simplify namespace qualifications for
	current, nested-only reality. Add top-level namespace alias,
	namespace debug, for debug-mode containers.
	* include/debug/safe_iterator.h: Same.	
	* include/debug/set.h: Same.
	* include/debug/hash_multimap.h: Same.
	* include/debug/hash_set.h: Same.
	* include/debug/bitset
	* include/debug/safe_sequence.h: Same.
	* include/debug/multiset.h: Same.
	* include/debug/safe_base.h: Same.
	* include/debug/functions.h: Same.
	* include/debug/safe_iterator.tcc
	* include/debug/hash_multiset.h: Same.
	* include/debug/vector
	* include/debug/map.h: Same.
	* include/debug/deque
	* include/debug/hash_map.h: Same.
	* include/debug/string
	* include/debug/macros.h: Same.
	* include/debug/list
	* include/debug/debug.h: Same.
	* include/debug/multimap.h: Same.	
	* src/debug.cc: Same.
	* testsuite/23_containers/vector/invalidation/1.cc: Cleanups.
	* testsuite/23_containers/vector/invalidation/2.cc: Same.
	* testsuite/23_containers/vector/invalidation/3.cc: Same.
	* testsuite/23_containers/vector/invalidation/4.cc: Same.
	* testsuite/23_containers/deque/invalidation/1.cc: Same.
	* testsuite/23_containers/deque/invalidation/2.cc: Same.
	* testsuite/23_containers/deque/invalidation/3.cc: Same.
	* testsuite/23_containers/deque/invalidation/4.cc: Same.
	* testsuite/23_containers/multiset/invalidation/1.cc: Same.
	* testsuite/23_containers/multiset/invalidation/2.cc: Same.
	* testsuite/23_containers/multimap/invalidation/1.cc: Same.
	* testsuite/23_containers/multimap/invalidation/2.cc: Same.
	* testsuite/23_containers/bitset/invalidation/1.cc: Same.
	* testsuite/23_containers/bitset/cons/16020.cc: Same.
	* testsuite/23_containers/bitset/operations/13838.cc: Same.
	* testsuite/23_containers/list/invalidation/1.cc: Same.
	* testsuite/23_containers/list/invalidation/2.cc: Same.
	* testsuite/23_containers/list/invalidation/3.cc: Same.
	* testsuite/23_containers/list/invalidation/4.cc: Same.
	* testsuite/23_containers/set/invalidation/1.cc: Same.
	* testsuite/23_containers/set/invalidation/2.cc: Same.
	* testsuite/23_containers/map/invalidation/1.cc: Same.
	* testsuite/23_containers/map/invalidation/2.cc: Same.
	* testsuite/23_containers/map/insert/16813.cc: Same.
	
	* include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and
	friends.	
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/localefwd.h: Same.
	* include/bits/valarray_array.tcc: Same.
	* include/bits/valarray_after.h: Same.
	* include/bits/gslice_array.h: Same.
	* include/bits/stl_queue.h: Same.
	* include/bits/gslice.h: Same.
	* include/bits/locale_facets.tcc: Same.
	* include/bits/locale_classes.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/locale_facets.h: Same.
	* include/bits/stl_stack.h: Same.
	* include/bits/stl_iterator_base_types.h: Same.
	* include/bits/stl_heap.h: Same.
	* include/bits/indirect_array.h: Same.
	* include/bits/atomicity.h: Same.
	* include/bits/stream_iterator.h: Same.
	* include/bits/concurrence.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_pair.h: Same.
	* include/bits/basic_ios.tcc: Same.
	* include/bits/stl_raw_storage_iter.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_numeric.h: Same.
	* include/bits/ios_base.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/istream.tcc: Same.
	* include/bits/postypes.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/mask_array.h: Same.
	* include/bits/stl_uninitialized.h: Same.
	* include/bits/ostream.tcc: Same.
	* include/bits/slice_array.h: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/sstream.tcc: Same.
	* include/bits/stl_iterator_base_funcs.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stringfwd.h: Same.
	* include/bits/c++config
	* include/bits/stl_iterator.h: Same.
	* include/bits/valarray_array.h: Same.
	* include/bits/stl_tempbuf.h: Same.
	* include/bits/vector.tcc: Same.
	* include/bits/deque.tcc: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/basic_string.tcc: Same.
	* include/bits/list.tcc: Same.
	* include/bits/streambuf_iterator.h: Same.
	* include/bits/valarray_before.h: Same.
	* include/bits/stl_construct.h: Same.
	* include/bits/stl_function.h: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/bits/streambuf.tcc: Same.
	* include/bits/allocator.h: Same.
	* include/bits/stl_tree.h: Same.
	* include/bits/fstream.tcc: Same.
	* include/bits/stl_relops.h: Same.
	* include/bits/functexcept.h: Same.
	* include/std/std_valarray.h: Same.
	* include/std/std_iostream.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/std/std_bitset.h: Same.
	* include/std/std_iosfwd.h: Same.
	* include/std/std_iomanip.h: Same.
	* include/std/std_fstream.h: Same.
	* include/std/std_limits.h: Same.
	* include/std/std_stdexcept.h: Same.
	* include/std/std_istream.h: Same.
	* include/std/std_complex.h: Same.
	* include/std/std_memory.h: Same.
	* include/std/std_ostream.h: Same.
	* include/std/std_sstream.h: Same.
	* include/c_std/std_csignal.h: Same.
	* include/c_std/std_cstdlib.h: Same.
	* include/c_std/std_cstdio.h: Same.
	* include/c_std/std_cstdarg.h: Same.
	* include/c_std/std_cctype.h: Same.
	* include/c_std/std_cmath.h: Same.
	* include/c_std/std_ctime.h: Same.
	* include/c_std/std_clocale.h: Same.
	* include/c_std/std_csetjmp.h: Same.
	* include/c_std/std_cwchar.h: Same.
	* include/c_std/std_cstring.h: Same.
	* include/c_std/std_cstddef.h: Same.
	* include/c_std/std_cwctype.h: Same.
	* include/backward/iterator.h: Same.
	* include/backward/set.h: Same.
	* include/backward/hashtable.h: Same.
	* include/backward/fstream.h: Same.
	* include/backward/tempbuf.h: Same.
	* include/backward/istream.h: Same.
	* include/backward/bvector.h: Same.
	* include/backward/stack.h: Same.
	* include/backward/rope.h: Same.
	* include/backward/complex.h: Same.
	* include/backward/ostream.h: Same.
	* include/backward/heap.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/function.h: Same.
	* include/backward/multimap.h: Same.
	* include/backward/pair.h: Same.
	* include/backward/stream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/strstream
	* include/backward/slist.h: Same.
	* include/backward/tree.h: Same.
	* include/backward/vector.h: Same.
	* include/backward/deque.h: Same.
	* include/backward/multiset.h: Same.
	* include/backward/list.h: Same.
	* include/backward/map.h: Same.
	* include/backward/algobase.h: Same.
	* include/backward/hash_map.h: Same.
	* include/backward/algo.h: Same.
	* include/backward/queue.h: Same.
	* include/backward/streambuf.h: Same.
	* src/allocator-inst.cc: Same.
	* src/complex_io.cc: Same.
	* src/localename.cc: Same.
	* src/limits.cc: Same.
	* src/ios_failure.cc: Same.
	* src/locale-misc-inst.cc: Same.
	* src/streambuf-inst.cc: Same.
	* src/misc-inst.cc: Same.
	* src/concept-inst.cc: Same.
	* src/ios_locale.cc: Same.
	* src/pool_allocator.cc: Same.
	* src/fstream-inst.cc: Same.
	* src/istream-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/locale_init.cc: Same.
	* src/ctype.cc: Same.
	* src/strstream.cc: Same.
	* src/ostream-inst.cc: Same.
	* src/functexcept.cc: Same.
	* src/streambuf.cc: Same.
	* src/sstream-inst.cc: Same.
	* src/ios.cc: Same.
	* src/valarray-inst.cc: Same.
	* src/locale.cc: Same.
	* src/tree.cc: Same.
	* src/stdexcept.cc: Same.
	* src/istream.cc: Same.
	* src/compatibility.cc: Same.
	* src/locale-inst.cc: Same.
	* src/globals_io.cc: Same.
	* src/list.cc: Same.
	* src/ios_init.cc: Same.
	* src/locale_facets.cc: Same.
	* src/codecvt.cc: Same.

	* include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1).
	* include/tr1/boost_shared_ptr.h: Same.
	* include/tr1/tuple
	* include/tr1/hashtable
	* include/tr1/type_traits_fwd.h: Same.
	* include/tr1/unordered_set
	* include/tr1/functional
	* include/tr1/ref_fwd.h: Same.
	* include/tr1/utility
	* include/tr1/type_traits
	* include/tr1/array

	* include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx).
	* include/ext/typelist.h: Same.
	* include/ext/hash_map: Same.
	* include/ext/rc_string_base.h: Same.
	* include/ext/pool_allocator.h: Same.
	* include/ext/iterator: Same.
	* include/ext/rb_tree: Same.
	* include/ext/numeric: Same.
	* include/ext/vstring.tcc: Same.
	* include/ext/sso_string_base.h: Same.
	* include/ext/stdio_filebuf.h: Same.
	* include/ext/algorithm: Same.
	* include/ext/codecvt_specializations.h: Same.
	* include/ext/new_allocator.h: Same.
	* include/ext/array_allocator.h: Same.
	* include/ext/vstring_util.h: Same.
	* include/ext/vstring_fwd.h: Same.
	* include/ext/mt_allocator.h: Same.
	* include/ext/debug_allocator.h: Same.
	* include/ext/slist: Same.
	* include/ext/stdio_sync_filebuf.h: Same.
	* include/ext/hash_fun.h: Same.
	* include/ext/malloc_allocator.h: Same.
	* include/ext/functional: Same.
	* include/ext/bitmap_allocator.h: Same.
	* include/ext/pod_char_traits.h: Same.
	* include/ext/vstring.h: Same.
	* include/ext/ropeimpl.h: Same.
	* include/ext/hash_set: Same.
	* include/ext/memory: Same.
	* include/ext/rope: Same.
	* include/bits/boost_concept_check.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/bits/concurrence.h: Same.
	* include/bits/atomicity.h: Same.
	* config/locale/gnu/numeric_members.cc: Same.
	* config/locale/gnu/collate_members.cc: Same.
	* config/locale/gnu/ctype_members.cc: Same.
	* config/locale/gnu/c_locale.cc: Same.
	* config/locale/gnu/codecvt_members.cc: Same.
	* config/locale/gnu/messages_members.cc: Same.
	* config/locale/gnu/c_locale.h: Same.
	* config/locale/gnu/monetary_members.cc: Same.
	* config/locale/gnu/time_members.cc: Same.
	* config/locale/ieee_1003.1-2001/c_locale.h: Same.
	* config/locale/generic/numeric_members.cc: Same.
	* config/locale/generic/collate_members.cc: Same.
	* config/locale/generic/ctype_members.cc: Same.
	* config/locale/generic/c_locale.cc: Same.
	* config/locale/generic/codecvt_members.cc: Same.
	* config/locale/generic/messages_members.cc: Same.
	* config/locale/generic/c_locale.h: Same.
	* config/locale/generic/monetary_members.cc: Same.
	* config/locale/generic/time_members.cc: Same.
	* config/os/aix/atomicity.h: Same.
	* config/os/irix/atomicity.h: Same.
	* config/cpu/powerpc/atomicity.h: Same.
	* config/cpu/cris/atomicity.h: Same.
	* config/cpu/ia64/atomicity.h: Same.
	* config/cpu/alpha/atomicity.h: Same.
	* config/cpu/m68k/atomicity.h: Same.
	* config/cpu/hppa/atomicity.h: Same.
	* config/cpu/mips/atomicity.h: Same.
	* config/cpu/sparc/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/i486/atomicity.h: Same.
	* config/cpu/sh/atomicity.h: Same.
	* config/cpu/generic/atomicity.h: Same.
	* config/cpu/s390/atomicity.h: Same.
	* config/io/c_io_stdio.h: Same.
	* config/io/basic_file_stdio.cc: Same.
	* config/io/basic_file_stdio.h: Same.	
	* src/misc-inst.cc: Same.
	* src/concept-inst.cc: Same.
	* src/ext-inst.cc: Same.
	* src/string-inst.cc: Same.
	* src/pool_allocator.cc: Same.
	* src/bitmap_allocator.cc: Same.
	* src/mt_allocator.cc: Same.
	* libsupc++/exception: Same.
	* libsupc++/vterminate.cc: Same.
	* testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map.
	* testsuite/ext/hash_map/14648.cc: Same.	

	* libsupc++/eh_alloc.cc: Correct comment line spacing.

From-SVN: r108775
2005-12-19 00:56:05 +00:00
Paolo Carlini
3af22b23b3 basic_string.h (insert(iterator, _CharT), [...]): Avoid troubles with ADL, user defined operators and __normal_iterator.
2005-12-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (insert(iterator, _CharT),
	erase(iterator), erase(iterator, iterator)): Avoid troubles
	with ADL, user defined operators and __normal_iterator.
	* include/bits/stl_iterator.h (operator-(const __normal_iterator
	<_Iterator, _Container>&, const __normal_iterator<_Iterator,
	_Container>&)): Add overload for left and right iterators of
	the same type.
	* include/debug/safe_iterator.h (operator-(const _Safe_iterator
	<_Iterator, _Sequence>&, const _Safe_iterator<_Iterator,
	_Sequence>&)): Likewise.
	* testsuite/21_strings/basic_string/types/1.cc: New.

From-SVN: r108123
2005-12-06 17:19:30 +00:00
Paolo Carlini
7fdc03073c PR libstdc++/24975 (basic_string)
2005-11-23  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24975 (basic_string)
	* include/bits/basic_string.h (_Rep::_S_empty_rep): Avoid
	strict-aliasing warnings.

From-SVN: r107447
2005-11-24 01:29:51 +00:00
Kelley Cook
83f517994d All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103192
2005-08-17 02:28:44 +00:00
Paolo Carlini
ceed88b131 re PR libstdc++/22515 (operator>>(istream, string/CharT*) can be faster)
2005-07-24  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/22515
	* include/bits/basic_string.h: Declare the specialization
	operator>>(basic_istream<char>&, basic_string<char>&).
	* include/std/std_istream.h: Declate the specialization
	operator>>(basic_istream<char>&, char*).
	* include/std/std_streambuf.h (basic_streambuf): Add friend
	declarations for the above.
	* src/istream.cc: Define the above.
	* testsuite/27_io/basic_istream/extractors_character/char/4.cc: New.
	* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
	Likewise.
	* testsuite/performance/27_io/ifstream_extract_chars.cc: Likewise.

From-SVN: r102353
2005-07-25 08:47:33 +00:00
Jonathan Wakely
a65da37d5b basic_string.h, [...]: Fix Doxygen comments that use wrong parameter and function names.
* include/bits/basic_string.h, include/bits/locale_facets.h: Fix
	Doxygen comments that use wrong parameter and function names.

From-SVN: r101419
2005-06-29 13:18:08 +01:00
Paolo Carlini
4fd20a8f82 re PR libstdc++/21770 (rebinding allocator::value type vs. container::value_type)
2005-06-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/21770
	* include/bits/stl_deque.h: Add concept-check. In class _Deque_base
	rebind _Alloc to  _Tp_alloc_type, change _Deque_impl to inherit from
	the latter and add _M_get_Tp_allocator() which returns it. Use
	everywhere _M_get_Tp_allocator() instead of get_allocator().
	* include/bits/deque.tcc: Likewise, use _M_get_Tp_allocator().
	* include/bits/stl_list.h: Add concept-check. In class _List_base
	rebind _Alloc to _Tp_alloc_type and add _M_get_Tp_allocator(), which
	returns the allocator (of type _Node_alloc_type) converted to
	_Tp_alloc_type. Use everywhere _M_get_Tp_allocator() instead of
	get_allocator().
	* include/bits/list.tcc: Likewise, use _M_get_Tp_allocator().
	* include/bits/stl_vector.h: Add concept-check. In class _Vector_base
	rebind _Alloc to _Tp_alloc_type, change _Vector_impl to inherit from
	the latter and add _M_get_Tp_allocator() which returns it. Use
	everywhere _M_get_Tp_allocator() instead of get_allocator().
	* include/bits/vector.tcc: Likewise, use _M_get_Tp_allocator().
	* include/bits/stl_map.h: Add concept-check. Rebind _Alloc to
	_Pair_alloc_type and use it for _Rb_tree.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Add concept-check. Rebind _Alloc to
	_Key_alloc_type and use it for _Rb_tree.
	* include/bits/stl_set.h: Likewise.
	* include/bits/basic_string.h: Rebind _Alloc to _CharT_alloc_type and
	use it for the allocator typedefs.
	* testsuite/21_strings/basic_string/1.cc: New.
	* testsuite/23_containers/deque/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/deque/explicit_instantiation/1.cc: ... here.
	* testsuite/23_containers/deque/explicit_instantiation/3.cc: New.
	* testsuite/23_containers/list/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/list/explicit_instantiation/1.cc: ... here.
	* testsuite/23_containers/list/explicit_instantiation/3.cc: New.
	* testsuite/23_containers/map/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/map/explicit_instantiation/1.cc: ... here.
	* testsuite/23_containers/map/explicit_instantiation/3.cc: New.
	* testsuite/23_containers/multimap/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/multimap/explicit_instantiation/1.cc: .. here.
	* testsuite/23_containers/multimap/explicit_instantiation/3.cc: New.
	* testsuite/23_containers/multiset/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/multiset/explicit_instantiation/1.cc: .. here.
	* testsuite/23_containers/multiset/explicit_instantiation/3.cc: New.
	* testsuite/23_containers/set/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/set/explicit_instantiation/1.cc: .. here.
	* testsuite/23_containers/set/explicit_instantiation/3.cc: New.
	* testsuite/23_containers/vector/explicit_instantiation.cc: Move to...
	* testsuite/23_containers/vector/explicit_instantiation/1.cc: ... here.
	* testsuite/23_containers/vector/explicit_instantiation/3.cc: New.

From-SVN: r100546
2005-06-03 17:07:48 +00:00
Paolo Carlini
6be8b52474 revert: re PR libstdc++/19495 (basic_string::_M_rep() can produce an unnaturally aligned pointer to _Rep)
2005-05-28  Paolo Carlini  <pcarlini@suse.de>

	Revert:
	2005-05-18  Paolo Carlini  <pcarlini@suse.de>
		    Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/19495
	* include/bits/basic_string.h (_Raw_bytes_alloc): Rebind to
	size_type instead of char and rename to _Raw_alloc.
	* include/bits/basic_string.tcc (_Rep::_M_destroy, _Rep::_S_create):
	Use the above.
	* src/bitmap_allocator.cc: Add instantiation for size_type.
	* src/mt_allocator.cc: Likewise.
	* src/pool_allocator.cc: Likewise.
	* include/ext/array_allocator.h: Tweak slightly, avoid assuming
	the existence of an _Array::begin() and size() members.
	* testsuite/ext/array_allocator/2.cc: Tweak to use an allocator
	of size_type, instead of char, thus avoiding problems with
	rebinds, not treated correctly by array_allocator.

From-SVN: r100304
2005-05-28 21:57:03 +00:00
Paolo Carlini
be62afb4d5 basic_string.h (_Rep::_M_set_length_and_sharable): Use, consistently, traits_type::assign.
2005-05-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (_Rep::_M_set_length_and_sharable):
	Use, consistently, traits_type::assign.

From-SVN: r100142
2005-05-25 11:33:43 +00:00
Jonathan Wakely
bfbc811b25 basic_string.h (operator[]): Allow s[s.size()] in debug mode, but not pedantic mode.
* include/bits/basic_string.h (operator[]): Allow s[s.size()] in
	debug mode, but not pedantic mode.

From-SVN: r99967
2005-05-19 09:59:46 +01:00
Paolo Carlini
66143232bc re PR libstdc++/19495 (basic_string::_M_rep() can produce an unnaturally aligned pointer to _Rep)
2005-05-18  Paolo Carlini  <pcarlini@suse.de>
	    Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/19495
	* include/bits/basic_string.h (_Raw_bytes_alloc): Rebind to
	size_type instead of char and rename to _Raw_alloc.
	* include/bits/basic_string.tcc (_Rep::_M_destroy, _Rep::_S_create):
	Use the above.
	* src/bitmap_allocator.cc: Add instantiation for size_type.
	* src/mt_allocator.cc: Likewise.
	* src/pool_allocator.cc: Likewise.
	* include/ext/array_allocator.h: Tweak slightly, avoid assuming
	the existence of an _Array::begin() and size() members.
	* testsuite/ext/array_allocator/2.cc: Tweak to use an allocator
	of size_type, instead of char, thus avoiding problems with
	rebinds, not treated correctly by array_allocator.

Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r99933
2005-05-18 22:11:24 +00:00
Paolo Carlini
a26b6b94b9 re PR libstdc++/21035 (Documentation for std::basic_string::compare() incorrect)
2005-04-25  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/21035
	* include/bits/basic_string.h (compare): Adjust the documentation
	to match the implementation and the standard.

From-SVN: r98708
2005-04-25 10:59:21 +00:00
Paolo Carlini
c0736a9ddb cpp_type_traits.h: Add types to the structs thus making type_traits.h redundant...
2005-01-31  Paolo Carlini  <pcarlini@suse.de>
	    Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* include/bits/cpp_type_traits.h: Add types to the structs thus
	making type_traits.h redundant; exploit new __truth_type and
	__traitor helpers.
	* include/bits/type_traits.h: Remove.
	* include/Makefile.am: Update.
	* include/Makefile.in: Regenerate.
	* include/backward/tempbuf.h: Include cpp_type_traits.h instead.
	* include/bits/basic_string.h (replace(iterator, iterator,
	_InputIterator, _InputIterator), _S_construct(_InIterator,
	_InIterator, const _Alloc&)): Use __is_integer instead.
	* include/bits/stl_bvector.h (vector(_InputIterator,
	_InputIterator, const allocator_type&), assign(_InputIterator,
	_InputIterator), insert(iterator, _InputIterator, _InputIterator)):
	Likewise.
	* include/bits/stl_construct.h (_Destroy(_ForwardIterator,
	_ForwardIterator)): Use __is_scalar.
	* include/bits/stl_deque.h (deque(_InputIterator, _InputIterator,
	const allocator_type&), assign(_InputIterator, _InputIterator),
	insert(iterator, _InputIterator, _InputIterator)): Use __is_integer.
	* include/bits/stl_list.h (assign(_InputIterator, _InputIterator),
	insert(iterator, _InputIterator, _InputIterator)): Likewise.
	* include/bits/stl_tempbuf.h (_Temporary_buffer(_ForwardIterator,
	_ForwardIterator)): Use __is_scalar.
	* include/bits/stl_uninitialized.h (uninitialized_copy(_InputIterator,
	_InputIterator, _ForwardIterator), uninitialized_fill(_ForwardIterator,
	_ForwardIterator, const _Tp&), uninitialized_fill_n(_ForwardIterator,
	_Size, const _Tp&)): Likewise.
	* include/bits/stl_vector.h (vector(_InputIterator, _InputIterator,
	const allocator_type&), assign(_InputIterator, _InputIterator),
	insert(iterator, _InputIterator, _InputIterator)): Use __is_integer.
	* include/debug/debug.h (__valid_range(const _InputIterator&,
	const _InputIterator&)): Use __is_integer.
	* include/ext/slist (assign(_InputIterator, _InputIterator)): Likewise.
	* include/std/std_string.h: Include cpp_type_traits.h instead.

Co-Authored-By: Gabriel Dos Reis <gdr@integrable-solutions.net>

From-SVN: r94484
2005-01-31 16:22:01 +00:00
Jonathan Wakely
20fff8cd7c basic_string.h, [...]: Doxygen fixes.
2004-11-19  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/bits/basic_string.h, include/bits/locale_classes.h,
	include/bits/valarray_after.h, include/bits/valarray_before.h,
	include/ext/stdio_sync_filebuf.h, include/std/std_algorithm.h,
	include/std/std_functional.h, include/std/std_memory.h,
	include/std/std_numeric.h: Doxygen fixes.

From-SVN: r90979
2004-11-21 13:16:24 +00:00
Paolo Carlini
e9fb72e85f istream.tcc (getline(basic_istream<>&, basic_string<>&, _CharT)): Remove temporary kludge for libstdc++/15002.
2004-11-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (getline(basic_istream<>&, basic_string<>&,
	_CharT)): Remove temporary kludge for libstdc++/15002.
	* include/std/std_streambuf.h (class basic_streambuf): Declare
	getline(basic_istream<>&, basic_string<>&, _CharT) as friend.
	* include/bits/basic_string.h (getline(basic_istream<>&,
	basic_string<>&, _CharT)): Declare optimized specializations for
	char and wchar_t, using protected members of basic_streambuf.
	* src/istream.cc: Define the latter.

From-SVN: r90801
2004-11-17 09:04:14 +00:00
Paolo Carlini
5536e07dad basic_string.h (assign(const basic_string&)): Move out of line...
2004-10-27  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (assign(const basic_string&)):
	Move out of line...
	* include/bits/basic_string.tcc: ... here.

From-SVN: r89726
2004-10-28 01:04:35 +00:00
Paolo Carlini
6bfad5e135 basic_string.h (_M_replace_aux, [...]): Move out of line...
2004-10-27  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
	Move out of line...
	* include/bits/basic_string.tcc: ... here.

From-SVN: r89637
2004-10-27 12:02:37 +00:00
Paolo Carlini
ab4375af84 basic_string.h (append(const basic_string&), [...]): Move out of line...
2004-10-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (append(const basic_string&),
	append(size_type, _CharT)): Move out of line...
	* include/bits/basic_string.tcc: ... here.

From-SVN: r89622
2004-10-27 01:02:47 +00:00
Paolo Carlini
a6cb7068eb basic_string.h (erase(size_type, size_type), [...]): Call _M_mutate instead of _M_replace_safe...
2004-10-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (erase(size_type, size_type),
	erase(iterator), erase(iterator, iterator)): Call _M_mutate
	instead of _M_replace_safe, equivalent when the fourth argument
	is zero and simpler.

From-SVN: r89608
2004-10-26 21:16:58 +00:00
Paolo Carlini
8eae76be5f basic_string.h (_Rep::_M_is_safe): Move to basic_string as _M_disjunct, adjust to take only __s.
2004-10-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (_Rep::_M_is_safe): Move to
	basic_string as _M_disjunct, adjust to take only __s.
	* include/bits/basic_string.tcc: Adjust consistently callers.

From-SVN: r89534
2004-10-25 15:16:49 +00:00
Paolo Carlini
ec61e852bc basic_string.h (_Rep::_M_is_safe, [...]): New, use througout.
2004-10-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (_Rep::_M_is_safe, _M_check_length,
	_M_move, _M_copy, _M_assign): New, use througout.
	(operator+=(_CharT)): Define in terms of push_back.
	(append(const basic_string&)): Define here, inline, and simplify,
	don't use the full _M_replace_safe.
	(append(size_type, _CharT)): Likewise, don't use _M_replace_aux.
	(push_back): Likewise.
	(assign(const basic_string&)): Define here, inline.
	* include/bits/basic_string.tcc (append(const _CharT* s, size_type):
	Fix: when s points inside the _Rep, upon reallocation (reserve) we
	were copying from deallocated memory.
	(append(const basic_string&, size_type, size_type)): Simplify,
	don't use _M_replace_safe.
	(replace(size_type, size_type, const _CharT*, size_type)): Slightly
	tweak.
	(reserve): Likewise.
	* testsuite/21_strings/basic_string/append/char/2.cc: New.
	* testsuite/21_strings/basic_string/append/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string/append/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/basic_string/append/wchar_t/3.cc: Likewise.

	* testsuite/21_strings/basic_string/assign/char/3.cc: Remove junk.
	* testsuite/21_strings/basic_string/assign/wchar_t/3.cc: Likewise.

From-SVN: r89526
2004-10-25 08:45:04 +00:00
Paolo Carlini
cbf52bfab3 basic_string.h (_M_set_length_and_sharable): New.
2004-10-21  Paolo Carlini  <pcarlini@suse.de>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/basic_string.h (_M_set_length_and_sharable): New.
	* include/bits/basic_string.tcc (_S_construct, assign(const _CharT*,
	size_type), _M_mutate, _M_clone): Use it.
	(_Rep::_S_create): Don't set/call _M_length/_M_set_sharable here.

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

From-SVN: r89415
2004-10-21 22:01:41 +00:00
Paolo Carlini
cc6e67d442 basic_string.tcc (_M_mutate): Do not reallocate unnecessarily when _M_rep() == &_S_empty_rep() and __new_size...
2004-10-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.tcc (_M_mutate): Do not reallocate
	unnecessarily when _M_rep() == &_S_empty_rep() and __new_size
	== capacity() (== 0): is ok to just leave everything unchanged.

	* include/bits/basic_string.h: Minor formatting fixes.
	* include/bits/basic_string.tcc: Likewise.

From-SVN: r89199
2004-10-18 08:43:17 +00:00
Paolo Carlini
1165dc50e8 [multiple changes]
2004-09-28  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/16612
	* include/bits/basic_string.h (_M_dispose, _M_refcopy,
	basic_string()): When _GLIBCXX_FULLY_DYNAMIC_STRING is defined,
	don't deal with _S_empty_rep.
	* include/bits/basic_string.tcc (_S_construct, _M_destroy,
	_M_leak_hard, _M_mutate): Likewise.
	* acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): New.
	* acconfig.h: Add corresponding undef.
	* configure.ac: Use GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING.
	* docs/html/configopts.html: Document --enable-fully-dynamic-string.
	* configure: Regenerate.
	* config.h.in: Likewise.

2004-09-28  Benjamin Kosnik  <bkoz@redhat.com>
            Paolo Carlini  <pcarlini@suse.de>

	* testsuite/21_strings/basic_string/operations/char/1.cc: New.
	* testsuite/21_strings/basic_string/operations/wchar_t/1.cc: New.
	* testsuite/21_strings/basic_string/element_access/char/empty.cc: New.
	* testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc:
	New.

2004-09-28  Paolo Carlini  <pcarlini@suse.de>

	* README: Remove obsolete entry about include/c_shadow.

From-SVN: r88225
2004-09-28 08:58:35 +00:00
Benjamin Kosnik
75f29cdded re PR c++/16169 (-Weffc++ item 15 improvements)
2004-07-08  Benjamin Kosnik  <bkoz@redhat.com>

	PR c++/16169
	* include/bits/basic_string.h (basic_string::operator=): Revert.

From-SVN: r84296
2004-07-08 15:56:21 +00:00
Paolo Carlini
43da93a728 basic_string.h: Trivial formatting fixes and/or const-ification of some variables.
2004-07-04  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h: Trivial formatting fixes and/or
	const-ification of some variables.
	* include/bits/deque.tcc: Likewise.
	* include/bits/stl_algobase.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_construct.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_pair.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/vector.tcc: Likewise.

From-SVN: r84090
2004-07-04 17:57:58 +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
Paolo Carlini
41b8e86c9a PR libstdc++/15002 (partial)
2004-04-19  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/15002 (partial)
	* include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
	Special case __n2 == 1, not calling traits_type::assign/copy.

From-SVN: r80847
2004-04-19 11:30:20 +00:00
Benjamin Kosnik
2c5d0ae842 atomicity.h: New, forward declarations for __atomic_add and __exchange_and_add.
2004-02-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/atomicity.h: New, forward declarations for __atomic_add
	and __exchange_and_add.
	* config/cpu/generic/atomic_word.h: New, typdef for atomic word.
	* config/cpu/cris/atomic_word.h: Same.
	* config/cpu/sparc/atomic_word.h: Same.
	* include/bits/ios_base.h (_Callback_list::_M_remove_reference):
	Qualifiy with __gnu_cxx.
	(_Callback_list::_M_add_reference): Same.
	* include/bits/locale_classes.h (locale::facet::_M_add_reference): Add.
	(locale::facet::_M_remove_reference): Same.
	(locale::_Impl::_M_add_reference): Add.
	(locale::_Impl::_M_remove_reference): Same.
	* include/bits/basic_string.h (basic_string::_Rep::_M_refcopy): Same.
	(basic_string::_Rep::_M_dispose): Same.
	* src/ios.cc (ios_base::xalloc): Same.
	* src/ios_init.cc (ios_base::Init::Init): Same.
	(ios_base::Init::~Init): Same.
	* src/locale.cc (locale:🆔:_M_id): Same.
	* config/cpu/i486/atomicity.h: Use __gnu_cxx namespace. Remove
	static, and inline keyworks.
	* config/cpu/alpha/atomicity.h: Same.
	* config/cpu/cris/atomicity.h: Same.
	* config/cpu/generic/atomicity.h: Same.
	* config/cpu/hppa/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/ia64/atomicity.h: Same.
	* config/cpu/m68k/atomicity.h: Same.
	* config/cpu/mips/atomicity.h: Same.
	* config/cpu/powerpc/atomicity.h: Same.
	* config/cpu/s390/atomicity.h: Same.
	* config/cpu/sparc/atomicity.h: Same.

	* src/Makefile.am (host_sources): Add atomicity.cc.
	(atomicity.cc): New rule.
	* src/Makefile.in: Regenerate.
	* include/Makefile.am (host_headers): Remove host atomicity.h.
	(host_headers): Add atomic_word.h.
	(bits_headers): Add bits atomicity.h.
	Change ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
	* include/Makefile.in: Regenerate.
	* configure.host (atomic_word_dir): Add.
	* configure.ac: Substitute ATOMIC_WORD_SRCDIR. Change
	ATOMICITY_INC_SRCDIR to ATOMICITY_SRCDIR.
	* configure: Regenerate.
	* config/linker-map.gnu: Export __exchange_and_add, and __atomic_add.

	* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.

From-SVN: r78544
2004-02-27 00:49:50 +00:00
Bernardo Innocenti
ed6814f7b3 Remove trailing whitespace (see ChangeLog for longwinded description).
From-SVN: r77479
2004-02-08 05:46:42 +01:00
Paolo Carlini
eee54836b1 basic_string.h: Fix comment.
2004-02-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h: Fix comment.

From-SVN: r77428
2004-02-06 23:02:45 +00:00
Paolo Carlini
129e921059 basic_string.h (insert(iterator)): Remove, non-standard and already scheduled for removal.
2004-02-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (insert(iterator)): Remove,
	non-standard and already scheduled for removal.

From-SVN: r77198
2004-02-03 23:34:52 +00:00
Paolo Carlini
8de63ee0d7 basic_string.h (_Rep::operator[]): Remove, unused.
2004-01-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.h (_Rep::operator[]): Remove, unused.

	* include/bits/basic_string.h: Fix two comments.

From-SVN: r77044
2004-01-31 17:50:46 +00:00