Commit Graph

104 Commits

Author SHA1 Message Date
Paolo Carlini
af8590d281 Implement list::splice (and merge) bits of N1599
2006-01-19  Paolo Carlini  <pcarlini@suse.de>

	Implement list::splice (and merge) bits of N1599
	* include/bits/stl_list.h (list<>::_M_check_equal_allocators): New.
	(list<>::splice(iterator, list&), splice(iterator, list&, iterator),
	splice(iterator, list&, iterator, iterator)): Use it.
	* include/bits/stl_list.h (list<>::merge(list&), merge(list&,
	_StrictWeakOrdering)): Likewise.
	* testsuite/23_containers/list/operators/5.cc: New.

From-SVN: r110011
2006-01-20 02:38:54 +00:00
Paolo Carlini
f7cd797c5b re PR libstdc++/25658 (testsuite failure: 23_containers/deque/cons/assign/1.cc)
2006-01-09  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/25658
	* testsuite/23_containers/deque/cons/assign/1.cc: Divide
	sizes by 10.

From-SVN: r109499
2006-01-09 11:37:17 +00:00
Paolo Carlini
cf1e03717a PR libstdc++/22102 (insert as close to hint as possible)
2006-01-08  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/22102 (insert as close to hint as possible)
	* include/bits/stl_tree.h (_Rb_tree<>::_M_insert_lower,
	_M_insert_equal_lower): New.
	(_M_insert_equal(iterator, const _Val&),
	_M_insert_equal(const_iterator, const _Val&)): Use the above.
	* docs/html/ext/howto.html: Add an entry for DR 233.
	* testsuite/23_containers/multiset/modifiers/insert/22102.cc: New.
	* testsuite/23_containers/multimap/modifiers/insert/22102.cc: New.

	* testsuite/23_containers/set/insert/: Move...
	* testsuite/23_containers/set/modifiers/insert/: ...here.
	* testsuite/23_containers/map/insert/: Move...
	* testsuite/23_containers/map/modifiers/insert/: ...here.
	* testsuite/23_containers/multiset/insert/: Move...
	* testsuite/23_containers/multiset/modifiers/insert/: ...here.

From-SVN: r109473
2006-01-08 17:34:32 +00:00
Paolo Carlini
fd09ac0cf7 stl_bvector.h (vector<bool>::erase(iterator, iterator)): Just use _M_erase_at_end.
2006-01-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (vector<bool>::erase(iterator,
	iterator)): Just use _M_erase_at_end.

2006-01-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (class vector<bool>): Move all the
	helpers under protected access mode, consistently with the primary
	vector template.
	(vector<bool>::_M_erase_at_end): Add.
	(erase(iterator, iterator), clear, resize, _M_fill_assign,
	_M_assign_aux): Use it.
	* testsuite/23_containers/vector/bool/modifiers/erase/1.cc: New.

2006-01-06  Paolo Carlini  <pcarlini@suse.de>

	Implement Option 3 of DR 431 for vector<bool>.
	* include/bits/stl_bvector.h (class _Bvector_base): Change to
	a struct, consistently with the primary vector template.
	(class vector<bool>): Adjust to protected inheritance, tidy
	typedefs.
	(_Bvector_base<>::_M_get_Bit_allocator): Add.
	(vector<bool>::vector(const vector&)): Use it.
	(_Bvector_base<>::get_allocator): Tidy.
	(vector<bool>::swap): Use __alloc_swap.
	* testsuite/23_containers/vector/bool/modifiers/swap/1.cc: New.
	* testsuite/23_containers/vector/bool/modifiers/swap/2.cc: New.

From-SVN: r109415
2006-01-06 11:23:02 +00:00
Paolo Carlini
f7ace77f1f sso_string_base.h (__sso_string_base<>::_M_dataplus): Use _CharT_alloc_type as base class.
2006-01-04  Paolo Carlini  <pcarlini@suse.de>

        * include/ext/sso_string_base.h (__sso_string_base<>::_M_dataplus):
        Use _CharT_alloc_type as base class.
        (_M_get_allocator, _M_swap, _M_create, _M_destroy): Adjust.
        * include/ext/vstring.h (get_allocator): Tidy.

2006-01-04  Paolo Carlini  <pcarlini@suse.de>

	Implement Option 3 of DR 431 for all the containers.
	* include/bits/allocator.h (struct __alloc_swap): Add, swaps
	allocators, optimized to nothing in case they are empty.
	* include/bits/stl_deque.h (deque<>::swap): Use it.
	* include/bits/stl_list.h (list<>::swap): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>::swap): Likewise.
	* include/bits/stl_vector.h (vector<>::swap): Likewise.
	* include/tr1/hashtable (hashtable<>::swap): Likewise.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_swap):
	Likewise.
	* include/ext/sso_string_base.h (__sso_string_base<>::_M_swap):
	Likewise.
	* include/ext/vstring_util.h (__vstring_utility<>::_Alloc_hider):
	Clean-up (now vstring uses the generic __alloc_swap facility).
	* include/tr1/unordered_map: Adjust includes.
	* include/tr1/unordered_set: Likewise.
	* docs/html/ext/howto.html: Add an entry for DR 431.
	* testsuite/23_containers/deque/modifiers/swap.cc: Move to...
	* testsuite/23_containers/deque/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/deque/modifiers/swap/2.cc: New.
	* testsuite/23_containers/deque/modifiers/swap/3.cc: New.
	* testsuite/23_containers/list/modifiers/swap.cc: Move to...
	* testsuite/23_containers/list/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/list/modifiers/swap/2.cc: New.
	* testsuite/23_containers/list/modifiers/swap/3.cc: New.
	* testsuite/23_containers/vector/modifiers/swap.cc: Move to...
	* testsuite/23_containers/vector/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/vector/modifiers/swap/2.cc: New.
	* testsuite/23_containers/vector/modifiers/swap/3.cc: New.
	* testsuite/23_containers/set/modifiers/swap.cc: Move to...
	* testsuite/23_containers/set/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/set/modifiers/swap/2.cc: New.
	* testsuite/23_containers/set/modifiers/swap/3.cc: New.
	* testsuite/23_containers/map/modifiers/swap.cc: Move to...
	* testsuite/23_containers/map/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/map/modifiers/swap/2.cc: New.
	* testsuite/23_containers/map/modifiers/swap/3.cc: New.
	* testsuite/23_containers/multiset/modifiers/swap.cc: Move to...
	* testsuite/23_containers/multiset/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/multiset/modifiers/swap/2.cc: New.
	* testsuite/23_containers/multiset/modifiers/swap/3.cc: New.
	* testsuite/23_containers/multimap/modifiers/swap.cc: Move to...
	* testsuite/23_containers/multimap/modifiers/swap/1.cc: ... here.		
	* testsuite/23_containers/multimap/modifiers/swap/2.cc: New.
	* testsuite/23_containers/multimap/modifiers/swap/3.cc: New.
	* testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc: New.	
	* testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc: New.
	* testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc: New.	
	* testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc: New.
	* testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc: New.	
	* testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc: New.
	* testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc: New.	
	* testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc: New.

From-SVN: r109324
2006-01-04 11:34:45 +00:00
Paolo Carlini
31905f3498 stl_list.h (_List_base<>::_M_get_Node_allocator): Add.
2006-01-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (_List_base<>::_M_get_Node_allocator): Add.
	(_M_get_Tp_allocator, get_allocator): Tidy.
	(list<>::list(const list&), insert(iterator, size_type, const
	value_type&), insert(iterator, _InputIterator, _InputIterator)):
	Use _M_get_Node_allocator.
	* include/bits/stl_tree.h (_Rb_tree<>::_M_get_Node_allocator()): Add.
	(_Rb_tree(const _Rb_tree<>&): Use it.
	* include/bits/stl_deque.h (_Deque_base<>::_M_get_map_allocator,
	get_allocator): Tidy.
	* include/bits/stl_vector.h (_Vector_base<>::get_allocator): Tidy.
	* testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
	
	* testsuite/testsuite_allocator.h (uneq_allocator<>::swap): Fix.

	* testsuite/testsuite_allocator.h (class uneq_allocator): A simple
	non-empty testing allocator which can be endowed of a "personality"
	at construction time.

From-SVN: r109280
2006-01-03 13:19:23 +00:00
Chris Jefferson
8b5bc374b1 mt_allocator.h (__mt_alloc::__mt_alloc): Remove name of unused parameter.
2005-12-26  Chris Jefferson  <chris@bubblescope.net>

	* include/ext/mt_allocator.h (__mt_alloc::__mt_alloc): Remove
	name of unused parameter.
	* include/bits/stream_iterator.h (istream_iterator::istream_iterator):
	Construct _M_value.
	* include/debug/functions.h (__check_valid_range): Add
	__attribute__((unused)).
	* include/tr1/hashtable (hashtable::end): Remove name of unused
	parameter.
	* include/tr1/tuple_iterate.h (tuple::tuple): Likewise.
	(tuple::operator=): Add __attribute__((unused)).
	* include/tr1/functional (Fnv_hash<4>::hash): Add static_cast.
	(Fnv_hash<8>::hash): Likewise.

	* testsuite/25_algorithms/iter_swap/20577.cc (swap): Remove name of
	unused parameter.
	* testsuite/25_algorithms/unique_copy/check_type.cc (S2::S2,X2::X2):
	Likewise.
	* testsuite/22_locale/ctype/narrow/char/19955.cc (do_narrow): Likewise.
	* testsuite/22_locale/ctype/is/char/9858.cc (Derived::do_is, 
	Derived::do_scan_is, Derived::do_scan_not, Derived2::do_is,
	Derived2::do_scan_is, Derived2::do_scan_not): Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/12439_1.cc (TP::do_put):
	Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/12439_3.cc (TP::do_put):
	Likewise.
	* testsuite/22_locale/time_put/put/char/12439_1.cc (TP::do_put):
	Likewise.
	* testsuite/22_locale/time_put/put/char/12439_3.cc (TP::do_put):
	Likewise.
	* testsuite/testsuite_io.h (fail_num_get::do_get, fail_num_put::do_put):
	Likewise.
	* testsuite/25_algorithms/find/17441.cc (find): Likewise.
	* testsuite/23_containers/vector/cons/clear_allocator.cc
	(clear_alloc::clear_alloc): Likewise.
	* testsuite/23_containers/vector/bool/clear_allocator.cc
	(clear_alloc::clear_alloc): Likewise.
	* testsuite/23_containers/list/cons/clear_allocator.cc
	(clear_alloc::clear_alloc): Likewise.
	* testsuite/23_containers/set/modifiers/16728.cc (test_container):
	Likewise.
	* testsuite/27_io/basic_ios/cons/char/3.cc (char_traits::to_char_type,
	to_int_type): Likewise.
	* testsuite/27_io/basic_filebuf/imbue/12206.cc (codecvt::do_out, do_in,
	do_unshift, do_length): Likewise.
	* testsuite/21_strings/basic_string/capacity/1.cc 
	(operator==(A<T>,A<T>), operator<(A<T>,A<T>),
	char_traits::to_char_type, char_traits::to_int_type): Likewise
	* testsuite/testsuite_character.h (ctype::do_is, ctype::do_scan_is,
	ctype::do_scan_not, do_toupper, do_tolower): Likewise.
	* testsuite/25_algorithms/replace_copy/check_type.cc (Z::operator=):
	Add missing return statement.
	* testsuite/25_algorithms/replace_copy_if/check_type.cc (Z::operator=):
	Likewise.
	* testsuite/testsuite_iterators.h (output_iterator_wrapper::operator=,
	random_access_iterator_wrapper::operator==): Likewise.
	* testsuite/20_util/functional/binders/1.cc (s::f_int_int_const,
	s::f_int_int, s::f_int_void_const, s::f_int_void): Likewise.
	* testsuite/27_io/types/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/write/wchar_t/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/write/char/1.cc (test01): Likewise.
	* testsuite/21_strings/c_strings/wchar_t/24559.cc (main): Likewise.
	* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc (check): Add static
	cast.
	* testsuite/27_io/basic_istream/ignore/char/2.cc (check): Likewise.
	* testsuite/27_io/basic_istream/getline/wchar_t/5.cc (check): Likewise.
	* testsuite/27_io/basic_istream/getline/char/5.cc (check): Likewise.
	* testsuite/testsuite_allocator.h (check_new): Likewise.
	(check_deallocate_null): Add missing return value.
	* testsuite/ext/pool_allocator/allocate_chunk.cc (test01):
	Make variable unsigned.
	* testsuite/23_containers/vector/modifiers/erase/1.cc (N,N1,N2,N3,N4,
	N5,test01): Likewise.
	* testsuite/26_numerics/valarray/valarray_subset_assignment.cc
	(check_array): Likewise.
	(main): Removed unused variable.
	* testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc (test05):
	Removed unused variable.
	* testsuite/27_io/basic_ostream/flush/wchar_t/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/flush/char/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/endl/wchar_t/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/endl/char/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/ends/wchar_t/1.cc (test01): Likewise.
	* testsuite/27_io/basic_ostream/ends/char/1.cc (test01): Likewise.
	* testsuite/tr1/2_general_utilities/memory/shared_ptr/
	assign/shared_ptr.cc (test01): Correct return type.	
	* testsuite/27_io/basic_filebuf/close/char/2.cc (test_02):
	Add default value to close_num.

From-SVN: r109062
2005-12-26 10:53:42 +00:00
Paolo Carlini
5f5c25d99d stl_algobase.h (fill(const _Deque_iterator&, const _Deque_iterator&, const _Tp&)): Deal, correctly, only with iterators (leave const_iterators alone).
2005-12-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (fill(const _Deque_iterator&,
	const _Deque_iterator&, const _Tp&)): Deal, correctly, only
	with iterators (leave const_iterators alone).

2005-12-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (fill(const _Deque_iterator<>&,
	const _Deque_iterator<>&, const _Tp&)): Add.

	* testsuite/23_containers/deque/cons/assign/1.cc: New.

From-SVN: r109038
2005-12-24 10:01:45 +00:00
Paolo Carlini
1b4454bfd5 stl_deque.h (deque<>::resize, [...]): Avoid troubles with ADL, user defined operators and _Deque_iterator.
2005-12-19  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_deque.h (deque<>::resize, _M_fill_assign):
	Avoid troubles with ADL, user defined operators and _Deque_iterator.
	(operator-(const _Deque_iterator<>&, const _Deque_iterator<>&):
	Add overload for left and right iterators of the same type.
	* include/bits/deque.tcc (erase(iterator)): Avoid troubles with ADL,
	user defined operators and _Deque_iterator.
	* testsuite/23_containers/deque/types/1.cc: Add.
	
	* include/bits/deque.tcc (_M_insert_aux(iterator, size_type,
	const value_type&)): Qualify with std:: fill call.

From-SVN: r108827
2005-12-20 00:29:18 +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
d2cc7f9266 stl_vector.h (vector(const vector&)): Use _M_get_Tp_allocator.
2005-12-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (vector(const vector&)): Use
	_M_get_Tp_allocator.
	* include/bits/stl_deque.h (deque(const deque&)): Likewise.
	(_M_destroy_data): Adjust.

2005-12-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_deque.h (deque<>::_M_erase_at_end,
	_M_erase_at_begin, _M_destroy_data, _M_destroy_data_dispatch,
	_M_destroy_data_aux): New, optimize erase at begin() / end() and
	consistently use the "segmented iterator" optimization.
	(deque<>::~deque(), resize, clear, _M_assign_aux, _M_fill_assign):
	Use the above.
	* include/bits/deque.tcc (deque<>::operator=, _M_assign_aux): Same.
	(erase(iterator, iterator)): Likewise, clean-up.
	(erase(iterator)): Tweak, don't call copy unnecessarily. 
	(_M_destroy_data_aux): Define.
	* testsuite/23_containers/deque/modifiers/erase/1.cc: New.
	* testsuite/23_containers/deque/modifiers/erase/2.cc: Likewise.

From-SVN: r108727
2005-12-17 23:42:58 +00:00
Paolo Carlini
0cb855b7a6 re PR libstdc++/25288 (std::list insert members should have no effects if an exception is thrown)
2005-12-09  Paolo Carlini  <pcarlini@suse.de>
	    Howard Hinnant  <hhinnant@apple.com>

	PR libstdc++/25288
	* include/bits/stl_list.h (list<>::_M_insert_dispatch, _M_fill_insert):
	Remove.
	(_M_initialize_dispatch, _M_fill_initialize): Add.
	(list(size_type, const value_type&, const allocator_type&),
	list(const list&), list(_InputIterator, _InputIterator,
	const allocator_type&): Use the latter.
	(insert(iterator, size_type, const value_type&), insert(iterator,
	_InputIterator, _InputIterator)): Use construction & splice.
	* testsuite/23_containers/list/modifiers/insert/25288.cc: New.
	* testsuite/testsuite_allocator.h (class throw_allocator): Add.

	* include/bits/stl_list.h (list<>::insert, erase): Fix wrong comments.

Co-Authored-By: Howard Hinnant <hhinnant@apple.com>

From-SVN: r108313
2005-12-09 18:24:53 +00:00
Paolo Carlini
bc9053abce re PR libstdc++/24617 (vector vs __erase_at_end)
2005-12-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (vector<>::size, resize, capacity,
	operator[]): Avoid troubles with ADL, user defined operators
	and __normal_iterator.
	(_M_erase_at_end): Fix to take a pointer.
	(clear): Adjust call.
	* include/bits/vector.tcc (vector<>::insert(iterator, const
	value_type&), erase(iterator, iterator), operator=(const
	vector<>&), _M_assign_aux(input_iterator_tag), _M_insert_aux,
	_M_fill_insert, _M_range_insert): Likewise.
	(_M_fill_assign, _M_assign_aux(forward_iterator_tag)): Adjust
	_M_erase_at_end call.
	* testsuite/23_containers/vector/types/1.cc: New.

2005-12-08  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24617
	* include/bits/stl_vector.h (vector<>::_M_erase_at_end): New.
	(vector<>::clear, resize): Use it.
	* include/bits/vector.tcc (vector<>::erase(iterator, iterator),
	_M_fill_assign, _M_assign_aux): Likewise.

	* testsuite/23_containers/vector/modifiers/erase/1.cc: New.

From-SVN: r108227
2005-12-08 11:32:37 +00:00
Paolo Carlini
2bcec7298e re PR libstdc++/23767 (std::vector iterator implementation wrong)
2005-09-12  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/23767
	* include/bits/stl_iterator.h (__normal_iterator::
	__normal_iterator<>(const __normal_iterator<_Iter, _Container>&)):
	Enable only when _Iter is equal to _Container::pointer.
	* testsuite/21_strings/basic_string/types/23767.cc: New.
	* testsuite/23_containers/vector/types/23767.cc: Likewise.
	* testsuite/ext/vstring/types/23767.cc: Likewise.

From-SVN: r104167
2005-09-12 09:42:34 +00:00
Paolo Carlini
e182017e46 re PR libstdc++/23781 (Implicit conversion from NULL to list<T>::iterator)
2005-09-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/23781
	* include/bits/stl_list.h (_List_iterator<>::
	_List_iterator(_List_node_base*), _List_const_iterator<>::
	_List_const_iterator(const _List_node_base*)): Make explicit.
	(list<>::begin(), list<>::end(), list<>::pop_back()): Adjust
	consistently.
	* include/bits/list.tcc (list<>::insert, list<>::erase): Adjust
	consistently.
	* include/bits/stl_tree.h (_Rb_tree_iterator<>::
	_Rb_tree_iterator(_Link_type), _Rb_tree_const_iterator<>::
	_Rb_tree_const_iterator(_Link_type)): Make explicit.
	(_Rb_tree<>::begin(), _Rb_tree<>::end()): Adjust consistently.
	* include/ext/slist (_Slist_iterator<>::_Slist_iterator(_Node*)):
	Make explicit.
	(slist<>::erase(iterator), slist<>::erase(iterator, iterator)):
	Adjust consistently.
	* include/tr1/hashtable (hashtable_iterator<>::
	hashtable_iterator(hash_node<>**)): Make explicit.
	* testsuite/23_containers/list/23781.cc: New.
	* testsuite/23_containers/map/23781.cc: Likewise.
	* testsuite/23_containers/multimap/23781.cc: Likewise.
	* testsuite/23_containers/multiset/23781.cc: Likewise.
	* testsuite/23_containers/set/23781.cc: Likewise.
	* testsuite/ext/slist/23781.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/23781.cc: Likewise.
	* testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.

	* include/tr1/array (array<>::begin(), array<>::end()): Adjust
	stylistically for consistency with the other containers.

From-SVN: r104139
2005-09-11 09:48:41 +00:00
Paolo Carlini
e6494c9434 re PR libstdc++/23632 (std::vector<bool> in combination with debug mode fails to compile code)
2005-08-31  Paolo Carlini  <pcarlini@suse.de>
	    Kaspar Fischer <fischerk@inf.ethz.ch>

	PR libstdc++/23632
	* include/bits/stl_bvector.h (_Bit_iterator::operator[],
	_Bit_const_iterator::operator[]): Const-ify.
	* testsuite/23_containers/vector/bool/23632.cc: New.

Co-Authored-By: Kaspar Fischer <fischerk@inf.ethz.ch>

From-SVN: r103686
2005-08-31 17:01:57 +00:00
Paolo Carlini
8b5f07a224 PR libstdc++/23578 (DR 464 [Ready])
2005-08-29  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/23578 (DR 464 [Ready])
	* include/bits/stl_map.h (class map): Add at(const key_type&)
	member functions.
	* include/bits/stl_vector.h (class vector): Add data() member
	functions.
	* include/debug/map.h (class map): Adjust consistently.
	* include/debug/vector (class vector): Likewise.
	* testsuite/23_containers/map/element_access/1.cc: New.
	* testsuite/23_containers/vector/data_access/1.cc: Likewise.
	* docs/html/ext/howto.html: Add an entry for DR 464.

From-SVN: r103609
2005-08-29 16:11:19 +00:00
Geoffrey Keating
96d06af84b 1.cc: XFAIL on darwin8.
* testsuite/23_containers/vector/resize/1.cc: XFAIL on darwin8.
	* testsuite/27_io/ios_base/storage/2.cc: Likewise.

From-SVN: r103377
2005-08-23 01:16:45 +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
2fecaef4af [multiple changes]
2005-06-06  Paolo Carlini  <pcarlini@suse.de>

        Port from libstdcxx_so_7-branch:
	2004-09-24  Paolo Carlini  <pcarlini@suse.de>
		    Jonathan Wakely  <redi@gcc.gnu.org>

	* include/bits/stl_list.h (list::list(size_type, value_type,
	const allocator_type&): Implement according to the letter of the
	standard, i.e., don't use two overloads, not equivalent in case
	of non default constructible T.
	(list::resize(size_type, const value_type&)): Fix the signature:
	according to the standard the second argument is by value; also,
	don't use two overloads.
	* include/bits/list.tcc (list::resize(size_type, const value_type&)):
	Adjust consistently the signature.
	* include/bits/stl_deque.h (deque::deque(size_type, value_type,
	const allocator_type&)): Likewise.
	(deque::resize(size_type, const value_type&)): Likewise.
	* include/bits/stl_vector.h (vector::vector(size_type, value_type,
	const allocator_type&)): Likewise.
	(vector::resize(size_type, const value_type&)): Likewise.
	* testsuite/testsuite_hooks.h: Add NonDefaultConstructible test type.
	* testsuite/23_containers/deque/explicit_instantiation/2.cc: New.
	* testsuite/23_containers/list/explicit_instantiation/2.cc: New.
	* testsuite/23_containers/map/explicit_instantiation/2.cc: New.
	* testsuite/23_containers/multimap/explicit_instantiation/2.cc: New.
	* testsuite/23_containers/multiset/explicit_instantiation/2.cc: New.
	* testsuite/23_containers/set/explicit_instantiation/2.cc: New.
	* testsuite/23_containers/vector/explicit_instantiation/2.cc: New.

	* include/bits/deque.tcc: Minor formatting fix.

From-SVN: r100668
2005-06-06 16:59:55 +00: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
6323b34eeb re PR libstdc++/18604 (Use of unqualified names conflict with names in global namespace)
2005-05-09  Paolo Carlini  <pcarlini@suse.de>
	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	PR libstdc++/18604
	* include/bits/deque.tcc: Fully qualify names from namespace std.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/std/std_bitset.h: Likewise.
	* testsuite/23_containers/bitset/18604.cc: New.
	* testsuite/23_containers/deque/18604.cc: Likewise.
	* testsuite/23_containers/list/18604.cc: Likewise.
	* testsuite/23_containers/map/18604.cc: Likewise.
	* testsuite/23_containers/set/18604.cc: Likewise.
	* testsuite/23_containers/vector/18604.cc: Likewise.

Co-Authored-By: Giovanni Bajo <giovannibajo@gcc.gnu.org>

From-SVN: r99499
2005-05-10 01:58:19 +00:00
Dominik Strasser
2c2702f240 re PR libstdc++/21244 (Vector<bool> anonymous enum problem)
2005-04-27  Dominik Strasser  <dominik.strasser@infineon.com>
	    Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/21244
	* include/bits/stl_bvector.h: Change the anonymous enum
	at namespace scope to _S_word_bit_enum.
	* testsuite/23_containers/vector/bool/21244.cc: New.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r98844
2005-04-27 15:59:06 +00:00
Paolo Carlini
b0ea9c011d binders.cc: Remove explicit instantiations for non-weak systems.
2005-03-16  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/20_util/functional/binders.cc: Remove explicit
	instantiations for non-weak systems.
	* testsuite/20_util/memory/allocator/1.cc: Likewise.
	* testsuite/20_util/memory/allocator/10378.cc: Likewise.
	* testsuite/20_util/memory/allocator/10416.cc: Likewise.
	* testsuite/20_util/memory/allocator/8230.cc: Likewise.
	* testsuite/20_util/utility/rel_ops.cc: Likewise.
	* testsuite/22_locale/ctype/is/char/2.cc: Likewise.
	* testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise.
	* testsuite/23_containers/deque/cons/1.cc: Likewise.
	* testsuite/23_containers/deque/cons/2.cc: Likewise.
	* testsuite/23_containers/deque/invalidation/1.cc: Likewise.
	* testsuite/23_containers/deque/invalidation/2.cc: Likewise.
	* testsuite/23_containers/deque/invalidation/3.cc: Likewise.
	* testsuite/23_containers/deque/invalidation/4.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/swap.cc: Likewise.
	* testsuite/23_containers/deque/operators/1.cc: Likewise.
	* testsuite/23_containers/list/capacity/1.cc: Likewise.
	* testsuite/23_containers/list/cons/1.cc: Likewise.
	* testsuite/23_containers/list/cons/2.cc: Likewise.
	* testsuite/23_containers/list/cons/3.cc: Likewise.
	* testsuite/23_containers/list/cons/4.cc: Likewise.
	* testsuite/23_containers/list/cons/5.cc: Likewise.
	* testsuite/23_containers/list/cons/6.cc: Likewise.
	* testsuite/23_containers/list/cons/7.cc: Likewise.
	* testsuite/23_containers/list/cons/8.cc: Likewise.
	* testsuite/23_containers/list/cons/9.cc: Likewise.
	* testsuite/23_containers/list/invalidation/1.cc: Likewise.
	* testsuite/23_containers/list/invalidation/2.cc: Likewise.
	* testsuite/23_containers/list/invalidation/3.cc: Likewise.
	* testsuite/23_containers/list/invalidation/4.cc: Likewise.
	* testsuite/23_containers/list/modifiers/1.cc: Likewise.
	* testsuite/23_containers/list/modifiers/2.cc: Likewise.
	* testsuite/23_containers/list/modifiers/3.cc: Likewise.
	* testsuite/23_containers/list/operators/1.cc: Likewise.
	* testsuite/23_containers/list/operators/2.cc: Likewise.
	* testsuite/23_containers/list/operators/3.cc: Likewise.
	* testsuite/23_containers/list/operators/4.cc: Likewise.
	* testsuite/23_containers/map/insert/1.cc: Likewise.
	* testsuite/23_containers/map/invalidation/1.cc: Likewise.
	* testsuite/23_containers/map/invalidation/2.cc: Likewise.
	* testsuite/23_containers/map/modifiers/swap.cc: Likewise.
	* testsuite/23_containers/map/operators/1.cc: Likewise.
	* testsuite/23_containers/multimap/invalidation/1.cc: Likewise.
	* testsuite/23_containers/multimap/invalidation/2.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/swap.cc: Likewise.
	* testsuite/23_containers/multiset/insert/1.cc: Likewise.
	* testsuite/23_containers/multiset/insert/2.cc: Likewise.
	* testsuite/23_containers/multiset/invalidation/1.cc: Likewise.
	* testsuite/23_containers/multiset/invalidation/2.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/swap.cc: Likewise.
	* testsuite/23_containers/priority_queue/members/7161.cc: Likewise.
	* testsuite/23_containers/queue/members/7157.cc: Likewise.
	* testsuite/23_containers/set/insert/1.cc: Likewise.
	* testsuite/23_containers/set/invalidation/1.cc: Likewise.
	* testsuite/23_containers/set/invalidation/2.cc: Likewise.
	* testsuite/23_containers/set/modifiers/swap.cc: Likewise.
	* testsuite/23_containers/stack/members/7158.cc: Likewise.
	* testsuite/23_containers/vector/bool/6886.cc: Likewise.
	* testsuite/23_containers/vector/capacity/1.cc: Likewise.
	* testsuite/23_containers/vector/capacity/8230.cc: Likewise.
	* testsuite/23_containers/vector/cons/1.cc: Likewise.
	* testsuite/23_containers/vector/cons/2.cc: Likewise.
	* testsuite/23_containers/vector/cons/3.cc: Likewise.
	* testsuite/23_containers/vector/cons/6513.cc: Likewise.
	* testsuite/23_containers/vector/element_access/1.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/1.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/2.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/3.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/4.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/1.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/2.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/swap.cc: Likewise.
	* testsuite/23_containers/vector/resize/1.cc: Likewise.
	* testsuite/24_iterators/back_insert_iterator.cc: Likewise.
	* testsuite/24_iterators/front_insert_iterator.cc: Likewise.
	* testsuite/24_iterators/insert_iterator.cc: Likewise.
	* testsuite/24_iterators/iterator.cc: Likewise.
	* testsuite/25_algorithms/copy/1.cc: Likewise.
	* testsuite/25_algorithms/copy/2.cc: Likewise.
	* testsuite/25_algorithms/copy/3.cc: Likewise.
	* testsuite/25_algorithms/copy/4.cc: Likewise.
	* testsuite/25_algorithms/equal.cc: Likewise.
	* testsuite/25_algorithms/fill/1.cc: Likewise.
	* testsuite/25_algorithms/fill/2.cc: Likewise.
	* testsuite/25_algorithms/min_max.cc: Likewise.
	* testsuite/25_algorithms/rotate.cc: Likewise.
	* testsuite/25_algorithms/unique/1.cc: Likewise.
	* testsuite/25_algorithms/unique/2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise.
	* testsuite/ext/concept_checks.cc: Likewise.
	* testsuite/ext/hash_map/1.cc: Likewise.
	* testsuite/ext/hash_set/1.cc: Likewise.
	* testsuite/ext/rope/1.cc: Likewise.
	* testsuite/ext/rope/2.cc: Likewise.
	* testsuite/ext/rope/3.cc: Likewise.
	* testsuite/thread/pthread1.cc: Likewise.
	* testsuite/thread/pthread4.cc: Likewise.
	* testsuite/thread/pthread5.cc: Likewise.
	* testsuite/thread/pthread6.cc: Likewise.
	* testsuite/thread/pthread7-rope.cc: Likewise.

From-SVN: r96551
2005-03-16 11:24:36 +00:00
Paolo Carlini
838731b61e 16728.cc: Remove redundant include <testsuite_performance.h>.
2005-02-16  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/23_containers/set/modifiers/16728.cc:
	Remove redundant include <testsuite_performance.h>.

From-SVN: r95105
2005-02-16 13:14:36 +00:00
Volker Reichelt
a7a4444157 re PR libstdc++/19510 ([3.3 only] Uninitialized pointers in iterators)
PR libstdc++/19510
	* include/bits/stl_list.h (_List_iterator): Initialize _M_node
	in constructor.
	(_List_const_iterator): Likewise.
	* include/bits/stl_tree.h (_Rb_tree_iterator): Likewise.
	(_Rb_tree_const_iterator): Likewise.

	* testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.

From-SVN: r94002
2005-01-21 01:23:28 +00:00
Paolo Carlini
ac317859d4 re PR libstdc++/19433 (set, multiset, map, multimap misuse hint on insert)
2005-01-17  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/19433
	* include/bits/stl_tree.h (_Rb_tree<>::insert_unique(iterator,
	const _Val&), _Rb_tree<>::insert_equal(iterator, const _Val&)):
	Obtain amortized constant complexity if t is inserted right after
	p - not before p - as per Table 69.
	* testsuite/performance/23_containers/set_insert_from_sorted.cc: New.

	* testsuite/23_containers/multiset/insert/2.cc: New.
	* testsuite/23_containers/set/insert/1.cc: Likewise.

	* testsuite/performance/23_containers/set_create_from_sorted.cc:
	Simplify.

	* include/bits/stl_tree.h: Add a few missing std:: qualifications.

From-SVN: r93761
2005-01-17 14:14:26 +00:00
Paolo Carlini
14492f0b1e DR 434.
2004-11-18  Paolo Carlini  <pcarlini@suse.de>

	DR 434. bitset::to_string() hard to use [Ready]
	* include/std/std_bitset.h (to_string): Add three overloads, taking
	fewer template arguments.
	* docs/html/ext/howto.html: Add an entry for DR 434.
	* testsuite/23_containers/bitset/to_string/1.cc: New.

From-SVN: r90854
2004-11-18 09:52:57 +00:00
Benjamin Kosnik
8d511b9097 re PR tree-optimization/16728 (std::set tests for allocator/insert core in make check-performance)
2004-10-31  Benjamin Kosnik  <bkoz@redhat.com>

	PR c++/16728
	* testsuite/23_containers/set/modifiers/16728.cc: New.

From-SVN: r89921
2004-11-01 00:02:42 +00:00
Paolo Carlini
996e539545 vector.tcc (_M_insert_aux, [...]): Check at the outset that we are not trying to exceed max_size...
2004-10-21  Paolo Carlini  <pcarlini@suse.de>
	    Dhruv Matani  <dhruvbird@gmx.net>
	    Nathan Myers  <ncm@cantrip.org>

	* include/bits/vector.tcc (_M_insert_aux, _M_fill_insert,
	_M_range_insert): Check at the outset that we are not trying
	to exceed max_size, then deal properly with __len overflows.
	* testsuite/23_containers/vector/modifiers/insert/1.cc: New.

	* testsuite/testsuite_allocator.h: Remove redundant include.

Co-Authored-By: Dhruv Matani <dhruvbird@gmx.net>
Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r89377
2004-10-21 14:53:02 +00:00
Paolo Carlini
a3186d4e60 [multiple changes]
2004-10-12  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/17948
	* include/bits/stl_tree.h (erase(iterator, iterator)): Revert
	wrong commit of 2004-10-07.

2004-10-12  Scott Snyder  <snyder@fnal.gov>

	PR libstdc++/17948
	* testsuite/23_containers/set/modifiers/17948.cc: New.

From-SVN: r88956
2004-10-13 00:11:14 +00:00
Zack Weinberg
2cfe82fe43 decl.c (grokfndecl): If ::main is found not to return int, correct it after issuing a diagnostic.
gcc/cp:
	* decl.c (grokfndecl): If ::main is found not to return int,
	correct it after issuing a diagnostic.
	(grokdeclarator): If the incoming type was error_mark_node, do
	not complain about declaring something with no type.
	(start_function): Change check for ::main not returning int to
	an assertion, as grokfndecl now catches this when the user did it.
	* init.c (perform_member_init, sort_mem_initializers)
	(emit_mem_initializers): Make most diagnostics be issued on
	the line of current_function_decl, not whatever the current
	input line is.
	* parser.c (cp_lexer_peek_token_emit_debug_info): Surround
	definition and declaration with #ifdef ENABLE_CHECKING.
	Avoid unnecessary use of fprintf.
	(cp_lexer_print_token, cp_lexer_debug_stream): Adjust stub
	definitions to avoid warnings.
	(cp_lexer_new_main): Add assertion that first token is not a
	padding token.
	(cp_lexer_new_from_token_array): Fold into ...
	(cp_lexer_new_from_tokens): ... here.  Add assertion that
	first token is not a padding token.
	(cp_lexer_set_source_position_from_token): Move nearer to callers.
	Remove unused lexer argument.
	(cp_lexer_peek_token): Just print debugging report (if enabled)
	and return lexer->next_token.
	(cp_lexer_skip_purged_tokens): Delete.
	(cp_lexer_next_token_is, cp_lexer_next_token_is_not): Make
	inline, simplify bodies.
	(cp_lexer_peek_nth_token): Add debugging report a la
	cp_lexer_peek_token.
	(cp_lexer_consume_token): Correct commentary.  Advance over
	purged tokens here.  Set current source position here, from
	token to be returned.  Avoid unnecessary use of fprintf.
	(cp_lexer_purge_token): Advance next_token pointer over this and
	subsequent purged tokens.
	(cp_parser_error): Adjust source position to that of the
	peeked token.
	(cp_parser_push_lexer_for_tokens, cp_parser_pop_lexer): New functions.
	(cp_parser_string_literal): Remove some excessive cleverness.
	(cp_parser_enum_specifier): Call start_enum before consuming
	the opening brace.
	(cp_parser_member_declaration): Make the "extra semicolon"
	diagnostic consistently-worded with the other place this is
	diagnosed.  Explicitly set the diagnostic location to the
	location of the offending semicolon.
	(cp_parser_enclosed_template_argument_list): Use %</%> quoting
	in diagnostics.  Do not use cp_parser_require.  Set location
	of diagnostics about improper use of '>>' to location of
	offending token.
	(cp_parser_late_parsing_for_member):
	Use cp_parser_push_lexer_for_tokens and cp_parser_pop_lexer.
	(cp_parser_late_parsing_default_args): Likewise.  Manually
	move some logic outside the loop.

gcc/testsuite:
	* g++.dg/ext/complit1.C
	* g++.dg/other/error2.C
	* g++.dg/other/nontype-1.C
	* g++.dg/parse/crash11.C
	* g++.dg/parse/crash12.C
	* g++.dg/parse/error15.C
	* g++.dg/parse/error4.C
	* g++.dg/parse/tmpl-outside1.C
	* g++.dg/parse/too-many-tmpl-args1.C
	* g++.dg/template/dependent-expr3.C
	* g++.dg/template/error10.C
	* g++.dg/template/instantiate1.C
	* g++.dg/template/vtable2.C
	* g++.dg/warn/Wshadow-1.C
	* g++.dg/warn/weak1.C
	* g++.old-deja/g++.brendan/crash16.C
	* g++.old-deja/g++.brendan/crash18.C
	* g++.old-deja/g++.brendan/crash48.C
	* g++.old-deja/g++.brendan/crash49.C
	* g++.old-deja/g++.brendan/crash55.C
	* g++.old-deja/g++.brendan/crash56.C
	* g++.old-deja/g++.brendan/crash8.C
	* g++.old-deja/g++.brendan/enum11.C
	* g++.old-deja/g++.brendan/enum8.C
	* g++.old-deja/g++.brendan/enum9.C
	* g++.old-deja/g++.brendan/friend3.C
	* g++.old-deja/g++.brendan/misc14.C
	* g++.old-deja/g++.bugs/900402_02.C
	* g++.old-deja/g++.bugs/900404_03.C
	* g++.old-deja/g++.bugs/900404_04.C
	* g++.old-deja/g++.bugs/900428_03.C
	* g++.old-deja/g++.jason/crash4.C
	* g++.old-deja/g++.jason/overload21.C
	* g++.old-deja/g++.jason/redecl1.C
	* g++.old-deja/g++.jason/report.C
	* g++.old-deja/g++.jason/rfg10.C
	* g++.old-deja/g++.jason/template30.C
	* g++.old-deja/g++.law/arm12.C
	* g++.old-deja/g++.law/ctors5.C
	* g++.old-deja/g++.law/cvt20.C
	* g++.old-deja/g++.law/init10.C
	* g++.old-deja/g++.law/init8.C
	* g++.old-deja/g++.law/visibility17.C
	* g++.old-deja/g++.law/visibility7.C
	* g++.old-deja/g++.mike/net8.C
	* g++.old-deja/g++.mike/p646.C
	* g++.old-deja/g++.mike/p700.C
	* g++.old-deja/g++.mike/p701.C
	* g++.old-deja/g++.mike/p811.C
	* g++.old-deja/g++.ns/template13.C
	* g++.old-deja/g++.other/array3.C
	* g++.old-deja/g++.other/crash25.C
	* g++.old-deja/g++.other/dtor3.C
	* g++.old-deja/g++.other/dtor4.C
	* g++.old-deja/g++.other/main1.C
	* g++.old-deja/g++.other/warn7.C
	* g++.old-deja/g++.pt/crash11.C
	* g++.old-deja/g++.pt/crash36.C
	* g++.old-deja/g++.pt/spec22.C
	* g++.old-deja/g++.pt/spec9.C
	* g++.old-deja/g++.pt/ttp52.C
	* g++.old-deja/g++.robertl/eb103.C
	* g++.old-deja/g++.robertl/eb121.C
	* g++.old-deja/g++.robertl/eb22.C
	* g++.old-deja/g++.robertl/eb8.C:
	Update locations and/or regexps of dg-error markers.
	Remove markers for some bogus messages that are no longer issued.

libstdc++-v3:
	* testsuite/20_util/memory/auto_ptr/assign_neg.cc
	* testsuite/23_containers/map/operators/1_neg.cc
	* testsuite/23_containers/set/operators/1_neg.cc:
	Update locations and/or regexps of dg-error markers.

From-SVN: r87985
2004-09-23 21:27:25 +00:00
Matt Austern
f1197ae160 re PR libstdc++/16844 (Explicit instantiation failing)
PR libstdc++/16844
	* include/bits/stl_list.h (_M_create_node): Remove unused
	zero-argument version.
	* include/ext/slist (_M_create_node): Pass two arguments to
	allocator's construct() member function.
	* testsuite/23_containers/deque/explicit_instantiation.cc: New.
	* testsuite/23_containers/list/explicit_instantiation.cc: New.
	* testsuite/23_containers/vector/explicit_instantiation.cc: New.
	* testsuite/23_containers/map/explicit_instantiation.cc: New.
	* testsuite/23_containers/set/explicit_instantiation.cc: New.
	* testsuite/23_containers/multimap/explicit_instantiation.cc: New.
	* testsuite/23_containers/multiset/explicit_instantiation.cc: New.
	* testsuite/ext/hash_set_explicit_instantiation.cc: New.
	* testsuite/ext/slist_explicit_instantiation.cc: New.

From-SVN: r85428
2004-08-02 04:40:19 +00:00
Paolo Carlini
5875306379 re PR libstdc++/16813 (compiler error in DEBUG version of range insertion std::map::insert)
2004-07-29  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/16813
	* include/debug/map.h (insert(_InputIterator, _InputIterator)):
	Fix typo.
	* testsuite/23_containers/map/insert/16813.cc: New.

From-SVN: r85295
2004-07-29 10:52:49 +00:00
Matt Austern
1985f1cdaa stl_construct.h (_Destroy): New three-argument overload that takes an allocator argument.
* include/bits/stl_construct.h (_Destroy): New three-argument
	overload that takes an allocator argument.  Another inline
	three-argument overload that takes std::allocator and dispatches
	to the two-argument version.
	* include/bits/stl_uninitialized.h (__uninitialized_fill_n_aux):
	Change return type to void to match uninitialized_fill_n.
	(__uninitialized_copy_a_): New function.  Like uninitialized_copy
	except that it takes an allocator and uses it for construct and
	destroy.  If the allocator is std::allocator, dispatches to
	uninitialized_copy.
	(__uninitialized_fill_a): Likewise.
	(__uninitialized_fill_n_a): Likewise.
	(__uninitialized_copy_copy): Give it an allocator argument.
	(__uninitialized_fill_copy): Likewise.
	(__uninitialized_copy_fill): Likewise.
	* include/bits/deque.tcc: Use new forms defined in stl_construct.h
	and stl_uninitialized.h.  Replace use of single-argument _Construct
	and _Destroy with use of allocator's construct and destroy methods.
	* include/bits/list.tcc: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_tree.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/ext/hashtable.h: Use rebind so that allocator_type
	has correct type for a container's allocator.  Replace use of
	single-argument _Construct and _Destroy with use of allocator's
	construct and destroy methods.
	* include/ext/memory (__uninitialized_copy_n_a): New function.
	Like uninitialized_copy_n except that it takes an extra parameter,
	an allocator, and uses it for construct and destroy operations.
	* include/ext/rope: Use new forms defined in stl_construct.h,
	stl_uninitialized.h, and ext/memory.  Replace use of single-argument
	_Construct and _Destroy with allocator construct and destroy methods.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/slist.h: Likewise.
	* testsuite/testsuite_allocator.h (check_construct_destroy): New.
	* testsuite/testsuite_allocator.cc (check_construct_destroy): New.
	* testsuite/23_containers/deque/check_construct_destroy.cc: New.
	* testsuite/23_containers/list/check_construct_destroy.cc: New.
	* testsuite/23_containers/set/check_construct_destroy.cc: New.
	* testsuite/23_containers/vector/check_construct_destroy.cc: New.
	* testsuite/ext/hash_check_construct_destroy.cc: New.
	* testsuite/ext/slist_check_construct_destroy.cc: New.

From-SVN: r85265
2004-07-28 16:37:20 +00:00
Jonathan Wakely
879dc459de 14340.cc: Fix typos in instantiation of set and multiset (functor param given as int).
2004-07-05  Jonathan Wakely  <redi@gcc.gnu.org>

	* testsuite/23_containers/{set,multiset}/14340.cc: Fix typos in
	instantiation of set and multiset (functor param given as int).

From-SVN: r84112
2004-07-05 11:59:42 +01:00
Paolo Carlini
ab3d88bed1 re PR libstdc++/16020 (cannot copy __gnu_debug::bitset)
2004-06-18  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/16020
	* include/debug/safe_base.h
	(_Safe_sequence_base::_Safe_sequence_base(const _Safe_sequence_base&),
	_Safe_sequence_base::operator=): Provide definitions.
	* testsuite/23_containers/bitset/cons/16020.cc: New.

From-SVN: r83357
2004-06-18 17:13:35 +00:00
Benjamin Kosnik
f4a1faa55f testsuite_hooks.h (func_callback): Declare copy constructor and assignment operator private.
2004-05-22  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/testsuite_hooks.h (func_callback): Declare copy
	constructor and assignment operator private.
	* testsuite/23_containers/deque/cons/clear_allocator.cc: Match
	exception specifications of base class.
	* testsuite/23_containers/list/cons/clear_allocator.cc: Same.
	* testsuite/23_containers/vector/cons/clear_allocator.cc: Same.
	* testsuite/23_containers/vector/bool/clear_allocator.cc: New.

From-SVN: r82150
2004-05-22 21:51:07 +00:00
Benjamin Kosnik
261e5b9e6a [multiple changes]
2004-05-17  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/testsuite_hooks.h (__gnu_test::conversion): New class.
	* testsuite/23_containers/deque/14340.cc: New.
	* testsuite/23_containers/list/14340.cc: New.
	* testsuite/23_containers/map/14340.cc: New.
	* testsuite/23_containers/multimap/14340.cc: New.
	* testsuite/23_containers/multiset/14340.cc: New.
	* testsuite/23_containers/set/14340.cc: New.
	* testsuite/23_containers/vector/14340.cc: New.

2004-05-17  Douglas Gregor   <gregod@cs.rpi.edu>

	PR libstdc++/14340
	* include/debug/safe_iterator.h (_Safe_iterator converting
	constructor): Only allow declaration to instantiate when the
	incoming _Safe_iterator has exactly the right iterator type.

From-SVN: r81970
2004-05-18 03:27:57 +00:00
Jonathan Wakely
b2342b5484 boost_concept_check.h: Fix old attribute syntax.
2004-05-17  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/bits/boost_concept_check.h: Fix old attribute syntax.
	* testsuite/23_containers/map/modifiers/swap.cc: Define operator<
	to pass concept-checks.
	* testsuite/23_containers/multimap/modifiers/swap.cc: Same.
	* testsuite/23_containers/set/modifiers/swap.cc: Same.
	* testsuite/23_containers/multiset/modifiers/swap.cc: Same.

From-SVN: r81953
2004-05-17 22:56:18 +01:00
Paolo Carlini
394ef95eaf re PR libstdc++/15361 (bitset<>::_Find_next fails)
2004-05-14  Paolo Carlini  <pcarlini@suse.de>
	    Ivan Godard  <igodard@pacbell.net>

	PR libstdc++/15361
	* include/std/std_bitset.h (_Base_bitset<_Nw>::_M_do_find_next): Fix.
	* testsuite/23_containers/bitset/ext/15361.cc: New.

Co-Authored-By: Ivan Godard <igodard@pacbell.net>

From-SVN: r81852
2004-05-14 17:01:49 +00:00
Benjamin Kosnik
390e4c0dbe c++config (_GLIBCXX_STD): New.
2004-04-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config (_GLIBCXX_STD): New.
	* src/list.cc: Use it.
	* include/std/std_bitset.h: Same.
	* include/bits/vector.tcc: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/deque.tcc: Same.
	* include/bits/list.tcc: Same.
	* include/debug/vector: Same.
	* include/debug/set.h: Same.
	* include/debug/multiset.h: Same.
	* include/debug/multimap.h: Same.
	* include/debug/map.h: Same.
	* include/debug/list: Same.
	* include/debug/deque: Same.
	* include/debug/bitset: Same.
	* include/debug/formatter.h (__gnu_debug): Remove using directive.
	Add using declaration for std::type_info.
	* include/debug/safe_iterator.h: Add using declaration for
	std::iterator_traits and std::pair.
	* src/debug_list.cc: New.
	* src/Makefile.am: Add debug_list.cc.
	* src/Makefile.in: Regenerate.
	* config/linker-map.gnu: Add _List_node_base exports for std and
	__gnu_norm.

	* include/bits/stl_bvector.h (_Bvector_base): Use _Bvector_impl
	idiom that other containers use.
	* testsuite/23_containers/vector/bool/clear_allocator.cc: New.

From-SVN: r80763
2004-04-16 19:04:07 +00:00
Benjamin Kosnik
8bd22a3ceb [multiple changes]
2004-03-25  Gawain Bolton  <gp.bolton@computer.org>

	* include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
	default argument in constructors.
	(_Rb_tree::_M_empty_initialize): Remove.

2004-03-25  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
	* testsuite/23_containers/set/operators/1_neg.cc: Same.

2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>

	* include/bits/cpp_type_traits.h: Changed __is_pod
	completely. Now, it does not use any of the previous type_traits
	to detect the pod types, and it also detects function pointers as
	POD types.

	* include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
	which encapsulates the internal implementation of an rb_tree. Made
	the allocator a base class of this class instead of the rb_tree,
	which was not conforming. This _Rb_tree_impl class is also
	specialized on whether the _Compare parameter is a POD type or
	not. If so, then it maintains the comparison function as a data
	member, otherwise it makes the _Compare parameter a base class of
	itself. Also, _M_key_compare is now a function instead of a data
	member, so that the above trick can work properly. Delegated the
	initialization of the other data members to this newly created
	class. Also, now other member functions of rb_tree must refer to
	_M_key_compare as _M_impl._M_key_compare(). The other data members
	(*) can be referenced to as _M_impl.(*), where
	(*) includes _M_header, and _M_node_count.

From-SVN: r79977
2004-03-26 00:38:57 +00:00
Dhruv Matani
03f9ea4437 stl_list.h: Created a _List_impl class and made it derive from the allocator...
2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>

	* include/bits/stl_list.h: Created a _List_impl class and made it
	derive from the allocator, instead of the list deriving from the
	allocator class, which was not conformant. Changed all references
	from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
	as above (changed all references to the concerned variables).

2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>

	* include/bits/stl_deque.h: Created a _Deque_impl class and made
	it derive from the allocator, instead of the deque deriving from
	the allocator class, which was not conformant. Changed all
	references to the _M_start, _M_finish, _M_map, and _M_map_size to
	_M_impl.*.
	(_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
	qualification in 2 places where it was missing.
	(_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
	above.
	* include/bits/deque.tcc: Same as above (changed all references to
	the concerned variables).

2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>

	* include/bits/stl_vector.h: Created a _Vector_impl class and made
	it derive from the allocator, instead of the _Vector_base class,
	deriving from the allocator which was not conformant. Changed all
	references to the _M_start, _M_finish, and _M_end_of_storage to
	_M_impl.*.
	* include/bits/vector.tcc: Same as above (changed all references
	to the concerned variables).

2004-03-25  Dhruv Matani  <dhruvbird@gmx.net>

	* testsuite/23_containers/deque/cons/clear_allocator.cc: New.
	* testsuite/23_containers/list/cons/clear_allocator.cc: New.
	* testsuite/23_containers/vector/cons/clear_allocator.cc: New.

From-SVN: r79957
2004-03-25 17:12:16 +00:00
Benjamin Kosnik
6dde938c11 swap.cc: Add in bits for non-weak systems.
2004-03-09  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
	non-weak systems.
	* testsuite/23_containers/vector/modifiers/swap.cc: Same.
	* testsuite/23_containers/set/modifiers/swap.cc: Same.
	* testsuite/23_containers/multiset/modifiers/swap.cc: Same.
	* testsuite/23_containers/multimap/modifiers/swap.cc: Same.
	* testsuite/23_containers/map/modifiers/swap.cc: Same.
	* testsuite/23_containers/list/modifiers/swap.cc: Same.

	* testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.

From-SVN: r79224
2004-03-10 06:31:50 +00:00
Benjamin Kosnik
f1c4ca32d0 re PR c++/13658 ([testcase] namespace association vs. templates part one)
2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	PR c++/13658
	* testsuite/23_containers/deque/modifiers/swap.cc: New.
	* testsuite/23_containers/list/modifiers/swap.cc: New.
	* testsuite/23_containers/map/modifiers/swap.cc: New.
	* testsuite/23_containers/multimap/modifiers/swap.cc: New.
	* testsuite/23_containers/multiset/modifiers/swap.cc: New.
	* testsuite/23_containers/set/modifiers/swap.cc: New.
	* testsuite/23_containers/vector/modifiers/swap.cc: New.

From-SVN: r79151
2004-03-09 06:01:39 +00:00
Benjamin Kosnik
80e39f4ae5 1.cc: Test result string.
2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/23_containers/multiset/insert/1.cc: Test result string.

	* testsuite/23_containers/bitset/invalidation/1.cc: Main always
	returns 0.
	* testsuite/23_containers/deque/invalidation/4.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/map/invalidation/2.cc: Same.
	* testsuite/23_containers/multimap/invalidation/1.cc: Same.
	* testsuite/23_containers/multimap/invalidation/2.cc: Same.
	* testsuite/23_containers/multiset/invalidation/1.cc: Same.
	* testsuite/23_containers/multiset/invalidation/2.cc: Same.
	* testsuite/23_containers/set/invalidation/1.cc: Same.
	* testsuite/23_containers/set/invalidation/2.cc: Same.
	* testsuite/23_containers/vector/invalidation/1.cc: Same.
	* testsuite/23_containers/vector/invalidation/2.cc: Same.
	* testsuite/23_containers/vector/invalidation/3.cc: Same.
	* testsuite/23_containers/vector/invalidation/4.cc: Same.

From-SVN: r78943
2004-03-04 23:37:24 +00:00
Paolo Carlini
2aa89cbb78 testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to CXXFLAGS_save.
2004-03-04  Paolo Carlini  <pcarlini@suse.de>

	* scripts/testsuite_flags.in: Add "-D_GLIBCXX_ASSERT" to
	CXXFLAGS_save.
	* testsuite/lib/libstdc++.exp: Don't add it conditionally to
	DEFAULT_CXXFLAGS.
	* testsuite/18_support/numeric_limits.cc: Remove "-D_GLIBCXX_ASSERT"
	from the dg-options.
	* testsuite/23_containers/vector/invalidation/1.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/2.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/3.cc: Likewise.
	* testsuite/23_containers/vector/invalidation/4.cc: Likewise.
	* testsuite/23_containers/vector/resize/1.cc: Likewise.
	* testsuite/26_numerics/complex_value.cc: Likewise.
	* testsuite/27_io/ios_base/storage/1.cc: Likewise.
	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
	* testsuite/27_io/ios_base/storage/3.cc: Likewise.
	* testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
	* testsuite/27_io/objects/char/5.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/5.cc: Likewise.
	* testsuite/backward/11460.cc: Likewise.
	* testsuite/thread/pthread7-rope.cc: Likewise.

	* testsuite/21_strings/basic_string/compare/char/1.cc: Add
	missing test variable.
	* testsuite/21_strings/basic_string/compare/wchar_t/1.cc: Add
	missing test variable.

From-SVN: r78942
2004-03-04 23:29:44 +00:00
Benjamin Kosnik
f90e600a4e 1.cc: Provide explicit instantiations for non-weak systems.
2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/20_util/allocator/1.cc: Provide explicit
	instantiations for non-weak systems.
	* testsuite/20_util/binders.cc: Same.
	* testsuite/20_util/allocator/8230.cc: Same.
	* testsuite/20_util/allocator/10378.cc: Same.
	* testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
	* testsuite/22_locale/ctype/is/char/2.cc: Same.
	* testsuite/thread/pthread7-rope.cc: Same.
	* testsuite/thread/pthread6.cc: Same.
	* testsuite/thread/pthread5.cc: Same.
	* testsuite/thread/pthread4.cc: Same.
	* testsuite/thread/pthread1.cc: Same.
	* testsuite/ext/rope.cc: Same.
	* testsuite/ext/hash_set.cc: Same.
	* testsuite/ext/hash_map.cc: Same.
	* testsuite/ext/concept_checks.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
	* testsuite/25_algorithms/unique/2.cc: Same.
	* testsuite/25_algorithms/unique/1.cc: Same.
	* testsuite/25_algorithms/rotate.cc: Same.
	* testsuite/25_algorithms/min_max.cc: Same.
	* testsuite/25_algorithms/equal.cc: Same.
	* testsuite/24_iterators/rel_ops.cc: Same.
	* testsuite/24_iterators/iterator.cc: Same.
	* testsuite/24_iterators/insert_iterator.cc: Same.
	* testsuite/24_iterators/front_insert_iterator.cc: Same.
	* testsuite/24_iterators/back_insert_iterator.cc: Same.
	* testsuite/23_containers/vector/resize/1.cc: Same.
	* testsuite/23_containers/vector/modifiers/2.cc: Same.
	* testsuite/23_containers/vector/modifiers/1.cc: Same.
	* testsuite/23_containers/vector/invalidation/4.cc: Same.
	* testsuite/23_containers/vector/invalidation/3.cc: Same.
	* testsuite/23_containers/vector/invalidation/2.cc: Same.
	* testsuite/23_containers/vector/invalidation/1.cc: Same.
	* testsuite/23_containers/vector/element_access/1.cc: Same.
	* testsuite/23_containers/vector/cons/6513.cc: Same.
	* testsuite/23_containers/vector/cons/3.cc: Same.
	* testsuite/23_containers/vector/cons/2.cc: Same.
	* testsuite/23_containers/vector/cons/1.cc: Same.
	* testsuite/23_containers/vector/capacity/8230.cc: Same.
	* testsuite/23_containers/vector/capacity/1.cc: Same.
	* testsuite/23_containers/vector/bool/6886.cc: Same.
	* testsuite/23_containers/stack/members/7158.cc: Same.
	* testsuite/23_containers/set/invalidation/2.cc: Same.
	* testsuite/23_containers/set/invalidation/1.cc: Same.
	* testsuite/23_containers/queue/members/7157.cc: Same.
	* testsuite/23_containers/priority_queue/members/7161.cc: Same.
	* testsuite/23_containers/multiset/invalidation/2.cc: Same.
	* testsuite/23_containers/multiset/invalidation/2.cc: Same.
	* testsuite/23_containers/multiset/insert/1.cc: Same.
	* testsuite/23_containers/multimap/invalidation/2.cc: Same.
	* testsuite/23_containers/multimap/invalidation/2.cc: Same.
	* testsuite/23_containers/map/operators/1.cc: Same.
	* testsuite/23_containers/map/invalidation/2.cc: Same.
	* testsuite/23_containers/map/invalidation/1.cc: Same.
	* testsuite/23_containers/map/insert/1.cc: Same.
	* testsuite/23_containers/list/operators/4.cc: Same.
	* testsuite/23_containers/list/operators/3.cc: Same.
	* testsuite/23_containers/list/operators/2.cc: Same.
	* testsuite/23_containers/list/operators/1.cc: Same.
	* testsuite/23_containers/list/modifiers/3.cc: Same.
	* testsuite/23_containers/list/modifiers/2.cc: Same.
	* testsuite/23_containers/list/modifiers/1.cc: Same.
	* testsuite/23_containers/list/invalidation/4.cc: Same.
	* testsuite/23_containers/list/invalidation/3.cc: Same.
	* testsuite/23_containers/list/invalidation/2.cc: Same.
	* testsuite/23_containers/list/invalidation/1.cc: Same.
	* testsuite/23_containers/list/cons/9.cc: Same.
	* testsuite/23_containers/list/cons/8.cc: Same.
	* testsuite/23_containers/list/cons/7.cc: Same.
	* testsuite/23_containers/list/cons/6.cc: Same.
	* testsuite/23_containers/list/cons/5.cc: Same.
	* testsuite/23_containers/list/cons/4.cc: Same.
	* testsuite/23_containers/list/cons/3.cc: Same.
	* testsuite/23_containers/list/cons/2.cc: Same.
	* testsuite/23_containers/list/cons/1.cc: Same.
	* testsuite/23_containers/list/capacity/1.cc: Same.
	* testsuite/23_containers/deque/operators/1.cc: Same.
	* testsuite/23_containers/deque/invalidation/4.cc: Same.
	* testsuite/23_containers/deque/invalidation/3.cc: Same.
	* testsuite/23_containers/deque/invalidation/2.cc: Same.
	* testsuite/23_containers/deque/invalidation/1.cc: Same.
	* testsuite/23_containers/deque/cons/2.cc: Same.
	* testsuite/23_containers/deque/cons/1.cc: Same.

	* src/allocator.cc: Add char, wchar_t instantiations
	to match extern template declarations in memory.h.

From-SVN: r78922
2004-03-04 18:11:08 +00:00
Paolo Carlini
72afd981f8 re PR libstdc++/13838 (std::bitset<>::operator |= error with -D_GLIBCXX_DEBUG)
2004-01-23  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/13838
	* include/debug/bitset (operator|=): Fix typo.
	* testsuite/23_containers/bitset/operations/13838.cc: New.

From-SVN: r76479
2004-01-24 01:25:37 +00:00