Commit Graph

2803 Commits

Author SHA1 Message Date
Paolo Carlini
5f6d5f0af6 re PR libstdc++/34595 (std::copy copies the output iterator before assigning)
2007-12-26  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/34595
	* include/bits/stl_algobase.h (struct __cm_assign): Remove.
	(struct __copy_move<true, false, _Category>,
	struct __copy_move<true, false, random_access_iterator_tag>,
	struct __copy_move_backward<true, false, _Category>,
	struct __copy_move_backward<true, false, random_access_iterator_tag>):
	Add.
	(struct __copy_move, struct __copy_move_backward,
	struct __copy_move<false, false, random_access_iterator_tag>,
	struct __copy_move_backward<false, false, random_access_iterator_tag>):
	Adjust.
	* testsuite/25_algorithms/copy/34595.C: New.

From-SVN: r131188
2007-12-26 21:58:49 +00:00
Jonathan Wakely
44f37984f4 locale_classes.h: Simplify RTTI checks.
2007-12-17  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/locale_classes.h: Simplify RTTI checks.

From-SVN: r131020
2007-12-17 22:07:39 +00:00
Jonathan Wakely
aaf0ca6f27 boost_shared_ptr.h: Add support for allocators, aliasing, make_shared and rvalue-references.
2007-12-15  Jonathan Wakely  <jwakely-gcc@gmail.com>

	* include/tr1_impl/boost_shared_ptr.h: Add support for allocators,
	aliasing, make_shared and rvalue-references. Move __shared_count
	and _Sp_counted_* classes to new headers.
	* include/tr1_impl/boost_sp_counted_base.h: New.
	* include/bits/boost_sp_shared_count.h: New.
	* include/tr1/boost_sp_shared_count.h: New.
	* include/std/memory, include/tr1/memory: Include new headers.
	* include/Makefile.am: Adjust.
	* include/Makefile.in: Regenerate.
	* docs/html/documentation.html: Link to shared_ptr notes.
	* docs/html/20_util/shared_ptr.html: New.
	* docs/html/17_intro/c++0x_status.html: Update shared_ptr status.
	* testsuite/20_util/shared_ptr/cons/alias.cc: New.
	* testsuite/20_util/shared_ptr/cons/alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/assign.cc: Duplicate tr1 test.
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc: Likewise.
	* testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/io.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/24805.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
	1.cc: Likewise.
	* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
	2.cc: Likewise.
	* testsuite/20_util/shared_ptr/requirements/explicit_instantiation.cc:
	Remove.
	* testsuite/20_util/weak_ptr/lock/1.cc: Duplicate tr1 test.
	* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/requirements/explicit_instantiation.cc:
	Remove.

From-SVN: r130977
2007-12-15 22:28:29 +00:00
Benjamin Kosnik
c5f416abf7 re PR libstdc++/30127 (std::has_facet returns true for not installed derived facets)
2007-12-14  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/30127
	PR libstdc++/34449
	* include/bits/locale_classes.h (use_facet): Check facet hierarchy.
	(has_facet): Same.
	* testsuite/22_locale/global_templates/user_facet_hierarchies.cc: New.
	* testsuite/22_locale/global_templates/
	standard_facet_hierarchies.cc: New.

From-SVN: r130941
2007-12-14 19:32:03 +00:00
Paolo Carlini
c62df8fddb stl_bvector.h (vector<bool>::reserve): Move out of line...
2007-12-11  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (vector<bool>::reserve): Move out of
	line...
	* include/bits/vector.tcc: ... here.

From-SVN: r130777
2007-12-11 19:08:26 +00:00
Paolo Carlini
d87135d45a stl_tempbuf.h (__get_temporary_buffer): Fold in get_temporary_buffer.
2007-12-01  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_tempbuf.h (__get_temporary_buffer): Fold
	in get_temporary_buffer.

From-SVN: r130557
2007-12-01 16:29:22 +00:00
Paolo Carlini
cded5e6bd5 locale_facets.tcc (num_put<>::_M_insert_int): When ios_base::showpos and the type is signed and the value is zero, prepend +.
2007-11-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_put<>::_M_insert_int): When
	ios_base::showpos and the type is signed and the value is zero,
	prepend +.
	* testsuite/22_locale/num_put/put/char/12.cc: New.
	* testsuite/22_locale/num_put/put/wchar_t/12.cc: Likewise.

From-SVN: r130460
2007-11-27 01:59:41 +00:00
Paolo Carlini
ba940b7cb3 stl_algobase.h (__lexicographical_compare<>::__lc): Move out of line.
2007-11-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (__lexicographical_compare<>::__lc):
	Move out of line.

	* include/bits/stl_algobase.h (swap_ranges): Remove redundant
	simulated concept checks.

From-SVN: r130404
2007-11-25 11:22:03 +00:00
Paolo Carlini
360b7bffb1 stl_list.h (insert(iterator, value_type&&)): Just forward to emplace.
2007-11-23  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (insert(iterator, value_type&&)): Just
	forward to emplace.
	* include/bits/stl_vector.h (insert(iterator, value_type&&)): Likewise.
	* include/bits/stl_deque.h (insert(iterator, value_type&&)): Likewise.
	* include/debug/list (insert(iterator, value_type&&)): Likewise.
	* include/debug/vector (insert(iterator, value_type&&)): Likewise.
	* include/debug/deque (insert(iterator, value_type&&)): Likewise.
	* include/bits/list.tcc (insert(iterator, value_type&&)): Remove.
	* include/bits/vector.tcc (insert(iterator, value_type&&)): Likewise.
	* include/bits/deque.tcc (insert(iterator, value_type&&)): Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r130374
2007-11-23 11:49:07 +00:00
Paolo Carlini
02b27543b7 stl_tree.h (_Rb_tree<>::_Rb_tree_impl<, true>): Remove, identical in mainline to the primary template.
2007-11-22  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree_impl<, true>): Remove,
	identical in mainline to the primary template.

From-SVN: r130355
2007-11-22 18:54:36 +00:00
Benjamin Kosnik
c60cd1dcf7 documentation.html: Validate.
2007-11-20  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/documentation.html: Validate. Add links to index,
	correct broken links.
	* docs/html/17_intro/C++STYLE: Add bits.
	* docs/html/17_intro/configury.html: Correct, update.
	* docs/html/17_intro/api.html: Correct HTML.

	* include/bits/stl_algobase.h: Adjust comment.

From-SVN: r130331
2007-11-21 16:37:26 +00:00
Paolo Carlini
f22aa574dc functional_hash.h: Do not include ext/numeric_traits.h.
2007-11-20  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/functional_hash.h: Do not include ext/numeric_traits.h.
	* include/tr1/functional_hash.h: Likewise.
	* include/std/functional: Include ext/type_traits.h.
	* include/tr1/functional: Likewise.

From-SVN: r130314
2007-11-20 14:06:53 +00:00
Paolo Carlini
478b2b9cb3 stl_algobase.h (struct __lexicographical_compare): Move to namespace std.
2007-11-16  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (struct __lexicographical_compare):
	Move to namespace std.
	(__lexicographical_compare_aux<>(_II1, _II1, _II2, _II2)): Add.
	(lexicographical_compare<>(_II1, _II1, _II2, _II2)): Call the latter.

From-SVN: r130254
2007-11-17 00:32:29 +00:00
Paolo Carlini
de03de6403 stl_algobase.h (struct __lexicographical_compare): Add.
2007-11-16  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (struct __lexicographical_compare): Add.
	(lexicographical_compare<>(_II1, _II1, _II2, _II2)): Use it.
	(lexicographical_compare(const unsigned char*, const unsigned char*,
	const unsigned char*, const unsigned char*),
	lexicographical_compare(const char*, const char*, const char*,
	const char*)): Remove.
	* include/ext/numeric_traits.h (__numeric_traits_floating<>::
	__is_signed): Add.

From-SVN: r130248
2007-11-16 23:41:55 +00:00
Paolo Carlini
c68e412864 locale_facets.tcc (__verify_grouping): Move...
2007-11-16  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (__verify_grouping): Move...
	* src/locale_facets.cc: ... here.
	* config/abi/pre/gnu.ver: Update exports.

From-SVN: r130233
2007-11-16 17:45:35 +00:00
Paolo Carlini
7f786096da istream.tcc (basic_istream<>::sentry:: sentry(basic_istream<>&, bool)): Explicitely convert to bool.
2007-11-15  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (basic_istream<>::sentry::
	sentry(basic_istream<>&, bool)): Explicitely convert to bool.
	* include/bits/locale_facets.tcc (num_put<>::_M_insert_int(_OutIter,
	ios_base&, _CharT, _ValueT)): Likewise.
	* include/std/ostream (basic_ostream<>::sentry::~sentry): Likewise.

From-SVN: r130211
2007-11-15 22:59:12 +00:00
Paolo Carlini
4f39bf5c6b re PR libstdc++/34105 (Confusing error message with missing #include <algorithm>)
2007-11-15  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/34105
	* include/bits/stl_algobase.h: Do not include <bits/algorithmfwd.h>.
	(lexicographical_compare(const unsigned char*, const unsigned char*,
	const unsigned char*, const unsigned char*),
	lexicographical_compare(const char*, const char*, const char*,
	const char*)): Move to namespace (std, _GLIBCXX_STD_P).
	* include/parallel/algobase.h: Do not include <bits/algorithmfwd.h>.
	(equal): Move after mismatch.
	* include/bits/stl_heap.h (is_heap, is_heap_until): Reorder.
	* include/bits/char_traits.h: Include <bits/stl_algobase.h> instead
	of <bits/algorithmfwd.h>.
	* include/bits/stl_algo.h: Include first <bits/algorithmfwd.h>.
	* include/bits/algorithmfwd.h (lexicographical_compare): Do not
	declare overloads.
	* include/parallel/partition.h: Include <parallel/random_number.h>.
	* testsuite/util/testsuite_abi.cc: Include <algorithm>.

From-SVN: r130207
2007-11-15 19:05:17 +00:00
Johannes Singler
d76575caa5 multiway_merge.h: More robust finding of an arbitrary existing element inside the input sequences.
2007-11-14  Johannes Singler  <singler@ira.uka.de>

      * include/parallel/multiway_merge.h: More robust finding of an
        arbitrary existing element inside the input sequences.
      * include/bits/stl_algo.h: Fix typo to actually call appropriate
        sequential version.

From-SVN: r130183
2007-11-14 17:37:38 +00:00
Benjamin Kosnik
4dd9d9db1d documentation.html: First pass at unified table of contents.
2007-11-13  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/documentation.html: First pass at unified table of contents.
	* docs/html/abi.html: Move...
	* docs/html/17_intro/abi.html: ...here.
	* docs/html/17_intro/porting-howto.html: Update, edit, put
	resulting pieces into...
	* docs/html/17_intro/api.html: New.
	* docs/html/17_intro/c++0x_status.html: New.
	* docs/html/17_intro/CHECKLIST: Move to...
	* docs/html/17_intro/c++1998_status.html: ...here.
	* docs/html/ext/tr1.html: Move ...
	* docs/html/17_intro/tr1_status.html: ...here.
	* docs/html/debug_mode.html: Move...
	* docs/html/ext/debug_mode.html: ...here.
	* docs/html/parallel_mode.html: Move...
	* docs/html/ext/parallel_mode.html: ...here
	* docs/html/17_intro/BUGS: Remove.
	* docs/html/17_intro/concept_check.diff: Remove.
	* docs/html/17_intro/HEADER_POLICY: Remove.
	* docs/html/17_intro/headers_cc.txt: Remove.
	* docs/html/17_intro/PROBLEMS: Remove.
	* docs/html/17_intro/RELEASE-NOTES: Remove.
	* docs/html/explanations.html: Remove.
	* docs/html/makedoc.awk: Remove.
	* docs/html/faq/index.txt: Remove. HTML only.
	* /docs/html/Makefile: Remove.
	
	* docs/html/17_intro/configury.html: Editing, updating,
	consistency check with doxygen conventions. Change libstdc++-v3 to
	libstdc++.	
	* docs/html/17_intro/howto.html: Same.
	* docs/html/17_intro/license.html: Same.
	* docs/html/17_intro/porting.html: Same.
	* docs/html/18_support/howto.html: Same.
	* docs/html/19_diagnostics/howto.html: Same.
	* docs/html/20_util/allocator.html: Same.
	* docs/html/20_util/howto.html: Same.
	* docs/html/21_strings/howto.html: Same.
	* docs/html/22_locale/codecvt.html: Same.
	* docs/html/22_locale/ctype.html: Same.
	* docs/html/22_locale/howto.html: Same.
	* docs/html/22_locale/messages.html: Same.
	* docs/html/23_containers/howto.html: Same.
	* docs/html/24_iterators/howto.html: Same.
	* docs/html/25_algorithms/howto.html: Same.
	* docs/html/26_numerics/howto.html: Same.
	* docs/html/27_io/howto.html: Same.
	* docs/html/configopts.html: Same.
	* docs/html/debug.html: Same.
	* docs/html/ext/ballocator_doc.html: Same.
	* docs/html/ext/howto.html: Same.
	* docs/html/ext/mt_allocator.html: Same.
	* docs/html/ext/sgiexts.html: Same.
	* docs/html/faq/index.html: Same.
	* docs/html/install.html: Same.
	* docs/html/test.html: Same.
	
	* include/bits/c++config: Change _GLIBCXX_DEPRECATED to
	_GLIBCXX_DEPRECATED_ATTR, _GLIBCXX_VISIBILITY to
	_GLIBCXX_VISIBILITY_ATTR.	
	* include/backward/auto_ptr.h: Same.
	* include/backward/binders.h: Same.
	* include/bits/stl_function.h: Same.
	* include/std/memory: Same.
	* include/std/streambuf: Same.
	* include/tr1_impl/boost_shared_ptr.h: Same.
	* src/globals_io.cc: Same.
	* src/ios_init.cc: Same.

From-SVN: r130150
2007-11-13 17:43:57 +00:00
Paolo Carlini
b4d9ec93d6 deque.tcc (deque<>::_M_push_back_aux, [...]): Do not copy unnecessarily to __t_copy.
2007-11-13  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/deque.tcc (deque<>::_M_push_back_aux,
	_M_push_front_aux): Do not copy unnecessarily to __t_copy.

From-SVN: r130136
2007-11-13 11:35:56 +00:00
Chris Jefferson
7ffec97f9e stl_deque.h (deque<>::push_back<>(_Args...), [...]): Add.
2007-11-12  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_deque.h (deque<>::push_back<>(_Args...),
	deque<>::push_front<>(_Args...), emplace<>(iterator, _Args...),
	insert(iterator, _Tp&&), _M_push_back_aux<>(_Args&&...),
	_M_push_front_aux<>(_Args&&...), _M_insert_aux<>(iterator,
	_Args&&...)): Add.
	* include/deque/deque.tcc (insert(iterator, value_type&&),
	emplace<>(iterator, _Args...), _M_push_back_aux<>(_Args&&...),
	_M_push_front_aux<>(_Args&&...), _M_insert_aux<>(iterator,
	_Args&&...)): Define.
	(_M_insert_aux(iterator, size_type, const value_type&),
	_M_insert_aux<>(iterator, _ForwardIterator, _ForwardIterator,
	size_type)): Use _GLIBCXX_MOVE3, _GLIBCXX_MOVE_BACKWARD3,
	__uninitialized_move*, __uninitialized_fill_move,
	__uninitialized_copy_move, when possible.
	* include/bits/stl_uninitialized.h (__uninitialized_copy_copy,
	__uninitialized_fill_copy, __uninitialized_copy_fill): Remove.
	(__uninitialized_copy_move, __uninitialized_move_copy,
	__uninitialized_move_fill, __uninitialized_fill_move): Add.
	* include/debug/deque (deque<>::push_back<>(_Args...),
	deque<>::push_front<>(_Args...), emplace<>(iterator, _Args...),
	insert(iterator, _Tp&&)): Add.
	* testsuite/23_containers/deque/modifiers/moveable.cc: Enable.
	* testsuite/23_containers/deque/capacity/moveable.cc: Likewise.
	* testsuite/23_containers/deque/cons/moveable.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.

	* include/debug/vector (vector<>::insert(iterator, _Tp&&)): Minor
	tweak, prefer std::move.

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

From-SVN: r130102
2007-11-12 16:01:09 +00:00
Howard Hinnant
c31ab059b6 stl_pair.h (pair<>::pair<>(_U1&&, _Arg0&&, _Args&&...)): Add.
2007-11-11  Howard Hinnant  <hhinnant@apple.com>

	* include/bits/stl_pair.h (pair<>::pair<>(_U1&&, _Arg0&&,
	_Args&&...)): Add.

From-SVN: r130085
2007-11-11 15:56:09 +00:00
Paolo Carlini
84237dbbf3 stl_list.h (list<>::_M_create_node<>(_Args&&...), [...]): Add.
2007-11-11  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (list<>::_M_create_node<>(_Args&&...),
	_M_insert<>(iterator, _Args&&...), push_front<>(_Args&&...),
	push_back<>(_Args&&...)): Add.
	(list<>::emplace<>(iterator, _Args&&...), insert(iterator,
	value_type&&)): Declare.
	(splice(iterator, list&&), splice(iterator, list&&, iterator),
	splice(iterator, list&&, iterator, iterator), merge(list&&),
	merge(list&&, _StrictWeakOrdering)): Add C++0x signatures.
	* include/bits/list.tcc (list<>::emplace<>(iterator, _Args&&...),
	insert(iterator, value_type&&)): Define.
	* include/debug/list (list<>::emplace<>(iterator, _Args&&...),
	insert(iterator, value_type&&)): Add.
	(splice(iterator, list&&), splice(iterator, list&&, iterator),
	splice(iterator, list&&, iterator, iterator), merge(list&&),
	merge(list&&, _StrictWeakOrdering)): Add C++0x signatures, use
	_GLIBCXX_MOVE.

From-SVN: r130082
2007-11-11 11:46:10 +00:00
Paolo Carlini
cbc6c888f9 stl_deque.h (deque<>::operator=(deque&&)): Implement resolution of DR 675, call clear first.
2007-11-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_deque.h (deque<>::operator=(deque&&)): Implement
	resolution of DR 675, call clear first.
	* include/bits/stl_list.h (list<>::operator=(list&&)): Likewise.
	* include/bits/stl_bvector.h (vector<bool>::operator=(vector&&)):
	Likewise.
	* include/bits/stl_vector.h (vector<>::operator=(vector&&)): Likewise.
	* include/bits/stl_map.h (map<>::operator=(map&&)): Likewise.
	* include/bits/stl_multimap.h (multimap<>::operator=(multimap&&)):
	Likewise.
	* include/bits/stl_multiset.h (multiset<>::operator=(multiset&&)):
	Likewise.
	* include/bits/stl_set.h (set<>::operator=(set&&)): Likewise.
	* include/debug/map.h (map<>::operator=(map&&)): Likewise.
	* include/debug/set.h (set<>::operator=(set&&)): Likewise.
	* include/debug/multimap.h (multimap<>::operator=(multimap&&)):
	Likewise.
	* include/debug/multiset.h (multiset<>::operator=(multiset&&)):
	Likewise.
	* include/debug/deque (deque<>::operator=(deque&&)): Likewise.
	* include/debug/list (list<>::operator=(list&&)): Likewise. 
	* include/debug/vector (vector<>::operator=(vector&&)): Likewise.
	* testsuite/23_containers/multimap/moveable.cc: Adjust.
	* testsuite/23_containers/multiset/moveable.cc: Likewise.
	* testsuite/23_containers/set/moveable.cc: Likewise.
	* testsuite/23_containers/map/moveable.cc: Likewise.
	* testsuite/20_util/pair/moveable.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.
 	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r130051
2007-11-09 17:18:10 +00:00
Paolo Carlini
ce796131e1 type_traits (__decay_selector<_Up, [...]): Change according to DR 705.
2007-11-08  Paolo Carlini  <pcarlini@suse.de>

	* include/std/type_traits (__decay_selector<_Up, false, false>):
	Change according to DR 705.
	* include/bits/stl_pair.h (make_pair(_T1&&, _T2&&)): Change
	according to DR 706.
	* include/tr1_impl/tuple: Tweak.

From-SVN: r130001
2007-11-08 14:40:33 +00:00
Paolo Carlini
8e0775fb17 locale_facets.h (ctype<char>::taple, [...]): Implement trivial resolution of DR 695 [Ready].
2007-11-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (ctype<char>::taple, classic_table):
	Implement trivial resolution of DR 695 [Ready].
	* testsuite/22_locale/ctype/dr695.cc: New.
	* docs/html/ext/howto.html: Update.

From-SVN: r129995
2007-11-08 10:55:32 +00:00
Paolo Carlini
1a1b20be14 stl_iterator.h (move_iterator<>::pointer): Adjust typedef per DR 680 [Ready].
2007-11-07  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_iterator.h (move_iterator<>::pointer): Adjust
	typedef per DR 680 [Ready].

From-SVN: r129959
2007-11-07 12:43:35 +00:00
Paolo Carlini
812e8c79b4 vector.tcc (vector<>::_M_insert_aux<>(iterator, _Args&&...)): In C++0x mode do not use temporary copies.
2007-11-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/vector.tcc (vector<>::_M_insert_aux<>(iterator,
	_Args&&...)): In C++0x mode do not use temporary copies.
	(insert(iterator, const value_type&)): Copy to a temporary
	when not reallocating.

	* include/bits/vector.tcc (insert(iterator, value_type&&)):
	Minor tweaks in C++0x mode.

From-SVN: r129954
2007-11-07 00:36:33 +00:00
Chris Jefferson
6eef740212 stl_vector.h (vector<>::push_back<>(_Args...), [...]): Add.
2007-11-05  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (vector<>::push_back<>(_Args...),
	emplace<>(iterator, _Args...), insert(iterator, _Tp&&),
	_M_insert_aux<>(iterator, _Args&&...)): Add.
	* include/bits/vector.tcc (insert(iterator, value_type&&),
	emplace<>(iterator, _Args...), _M_insert_aux<>(iterator, _Args&&...)):
	Define.
	(_M_fill_insert(iterator, size_type, const value_type&),
	_M_range_insert(iterator, _ForwardIterator, _ForwardIterator,
	std::forward_iterator_tag)): Use __uninitialized_move_a,
	_GLIBCXX_MOVE_BACKWARD3 when possible.
	* include/bits/stl_uninitialized.h (__uninitialized_move_a): Add.
	* include/debug/vector (vector<>::push_back<>(_Args...),
	emplace<>(iterator, _Args...), insert(iterator, _Tp&&)): Add.
	* testsuite/23_containers/vector/modifiers/moveable.cc: Enable.
	* testsuite/23_containers/vector/resize/moveable.cc: Likewise.
	* testsuite/23_containers/vector/cons/moveable.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.

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

From-SVN: r129907
2007-11-05 19:46:07 +00:00
Paolo Carlini
f6547b6818 stl_algo.h (minmax, [...]): Add.
2007-11-02  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (minmax, minmax_element): Add.
	* include/bits/algorithmfwd.h: Update.
	* testsuite/25_algorithms/minmax/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/25_algorithms/minmax/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/minmax/1.cc: Likewise.
	* testsuite/25_algorithms/minmax_element/check_type.cc: Likewise.
	* testsuite/25_algorithms/minmax_element/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/minmax_element/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/minmax_element/1.cc: Likewise.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Update.

From-SVN: r129853
2007-11-02 15:55:32 +00:00
Paolo Carlini
c54171fee6 stl_queue.h (queue<>::push(value_type&&)): Replace with "emplace" version per DR 756.
2007-10-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_queue.h (queue<>::push(value_type&&)): Replace
	with "emplace" version per DR 756.
	(priority_queue<>::push(value_type&&)): Likewise.
	* include/bits/stl_stack.h (stack<>::push(value_type&&)): Likewise.

From-SVN: r129814
2007-11-01 01:40:56 +00:00
Benjamin Kosnik
40abbf1f17 c++config (_GLIBCXX_DEPRECATED, [...]): New.
2007-10-29  Benjamin Kosnik  <bkoz@redhat.com>
 
	* include/bits/c++config (_GLIBCXX_DEPRECATED,
	_GLIBCXX_USE_DEPRECATED): New. Adjust comments.
	* include/bits/stl_auto_ptr.h: Move...
	* includse/backward/auto_ptr.h: ...here.
	* include/bits/stl_function.h (binder1st, binder2nd, bind1st,
	bind2nd): Move...
	* include/backward/binders.h: ...here. Deprecate in C++0x.

	* include/tr1_impl/boost_shared_ptr.h: Guard auto_ptr usage.
	* include/std/memory: Same.
	* include/std/streambuf: Consistent use of _GLIBCXX_USE_DEPRECATED.

	* include/backward/strstream: Fix guard macros.
	* include/backward/backward_warning.h: Adjust for all new items.

	* config/abi/pre/gnu.ver: Export basic_streambuf::stossc.
	
	* include/Makefile.am (backward_headers): Adjust.
	* include/Makefile.in: Regenerate.
	* configure: Regenerate.

From-SVN: r129733
2007-10-29 21:13:23 +00:00
Paolo Carlini
245a5fe5c0 stl_algobase.h (_GLIBCXX_MOVE3, [...]): Add.
2007-10-28  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (_GLIBCXX_MOVE3,
	_GLIBCXX_MOVE_BACKWARD3): Add.
	* include/bits/stl_iterator.h (_GLIBCXX_MAKE_MOVE_ITERATOR): Add.
	* include/bits/vector.tcc (vector<>::reserve): Use the latter.
	(vector<>::erase): Use _GLIBCXX_MOVE3.
	* include/bits/deque.tcc (deque<>::erase): Use _GLIBCXX_MOVE3
	and _GLIBCXX_MOVE_BACKWARD3.
	* testsuite/23_containers/vector/modifiers/erase/moveable.cc: New.
	* testsuite/23_containers/vector/capacity/reserve/moveable.cc: New.
	* testsuite/23_containers/deque/modifiers/erase/moveable.cc: New.

From-SVN: r129714
2007-10-29 01:59:49 +00:00
Paolo Carlini
e85b4fa7b5 stl_uninitialized.h (uninitialized_copy): Use ::new and value_type per the letter of the standard.
2007-10-28  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_uninitialized.h (uninitialized_copy): Use
	::new and value_type per the letter of the standard.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	move_iterators/1.cc: New.

	* testsuite/20_util/specialized_algorithms/16505.cc: Move to...
	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
	16505.cc: ... here.
	* testsuite/20_util/specialized_algorithms/32158.cc: Move to...
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/
	32158.cc: ... here.

	* include/bits/stl_construct.h (_Construct(_T1*)): Remove, unused.

From-SVN: r129698
2007-10-28 16:03:06 +00:00
Paolo Carlini
f0112db9b3 stl_algobase.h (struct __miter_base): Add.
2007-10-27  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (struct __miter_base): Add.
	(__copy_move_a2, __copy_move_backward_a2): Add.
	(copy, copy_backward, move, move_backward): Adjust, call *a2 helpers.
	* include/bits/cpp_type_traits.h (struct __is_move_iterator): Add.
	* include/bits/streambuf_iterator.h (__copy_move_a<>): Rename
	to __copy_move_a2.
	* include/std/streambuf (friend __copy_move_a<>): Likewise.
	* testsuite/25_algorithms/copy/move_iterators/1.cc: New.
	* testsuite/25_algorithms/copy_backward/move_iterators/1.cc: Likewise.

	* include/bits/stl_iterator.h (__normal_iterator<>::_Iterator_type):
	Rename to iterator_type.

From-SVN: r129678
2007-10-27 12:07:04 +00:00
Paolo Carlini
1fcd0a2c50 stl_algo.h (__lg<>(_Size)): Slightly tweak.
2007-10-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (__lg<>(_Size)): Slightly tweak.
	(__lg(int), __lg(long), __lg(long long)): Add, overloads
	exploiting __builtin_clz*.

From-SVN: r129624
2007-10-25 10:11:58 +00:00
Paolo Carlini
85799c607b stl_move.h (_GLIBCXX_MOVE): Wrap in parentheses.
2007-10-20  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_move.h (_GLIBCXX_MOVE): Wrap in parentheses.
	* include/bits/stl_algobase.h (__niter_base<>): Pass iterators
	by value, as everywhere else.

From-SVN: r129509
2007-10-20 10:08:29 +00:00
Paolo Carlini
3c167a8bbb stl_algobase.h (struct __cm_assign, [...]): Add.
2007-10-19  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (struct __cm_assign,
	struct __copy_move, struct __copy_move_backward, move,
	move_backward): Add.
	(struct __copy, struct __copy_backward): Remove.
	(__copy_aux, __copy_backward_aux): Rename to...
	(__copy_move_a, __copy_move_backward_a): ... this, and
	adjust calls.
	(copy, copy_backward): Adjust calls.
	* include/bits/streambuf_iterator.h (__copy_aux): Rename
	to ...
	(__copy_move_a): ... this; add bool template parameter.
	* include/std/streambuf: Adjust friend declarations.
	* testsuite/util/testsuite_iterators.h
	(WritableObject<>::operator=(U&&)): Add.
	* testsuite/25_algorithms/move/1.cc: New.
	* testsuite/25_algorithms/move/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/move/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/move_backward/1.cc: Likewise.
	* testsuite/25_algorithms/move_backward/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/move_backward/requirements/
	explicit_instantiation/pod.cc: Likewise.

From-SVN: r129492
2007-10-19 17:04:59 +00:00
Paolo Carlini
67202da49d allocator.h (struct __alloc_neq): Add.
2007-10-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/allocator.h (struct __alloc_neq): Add.
	* include/bits/stl_list.h (list<>::_M_check_equal_allocators): Use it.

From-SVN: r129457
2007-10-18 19:31:22 +00:00
Benjamin Kosnik
e63637ea90 re PR libstdc++/30085 (switch debug mode hash containers from ext to tr1)
2007-10-18  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/hash_map: To...
	* include/backward/hash_map: ...here. Remove debug mode.
	* include/ext/hash_set: To...
	* include/backward/hash_set: ...here. Remove debug mode.
	* include/ext/hash_fun.h: To...
	* include/backward/hash_fun.h: ...here.
	* include/ext/hashtable.h: To...
	* include/backward/hashtable.h: ...here.
	
	* include/bits/c++config: Remove __gnu_cxx namespace from debug mode.
	* include/debug/debug.h: Same.
		
	* include/debug/hash_map: Remove.
	* include/debug/hash_multimap.h: Remove.
	* include/debug/hash_set.h: Remove.
	* include/debug/hash_set: Remove.
	* include/debug/hash_multiset.h: Remove.
	* include/debug/hash_map.h: Remove.
	
	* include/Makefile.am (ext_headers): Move hash_set, hash_map to
	backward.
	(debug_headers): Remove hash_map, hash_set, hash_map.h,
	hash_map.h, hash_multiset.h, hash_multimap.h.	
	* include/Makefile.in: Regenerate.

	* docs/html/debug.html: Update.
	* docs/html/ext/howto.html: Same.
	* docs/html/faq/index.html: Same.
	* docs/doxygen/Intro.3: Same.
	* docs/doxygen/user.cfg.in: Adjust includes.
	* testsuite/ext/hash_map: Move to...
	* testsuite/backward/hash_map: ...here.
	* testsuite/ext/hash_set: Move to...
	* testsuite/backward/hash_set: ...here.
	
2007-10-18  Benjamin Kosnik  <bkoz@redhat.com>
        
	Removal of pre-ISO C++ items from include/backwards.
	* include/Makefile.am (backward_headers): Remove all but strstream,
	backward_warning.h.
	* include/Makefile.in: Regenerate.
	* include/backward/new.h: Remove.
	* include/backward/iterator.h: Same.
	* include/backward/alloc.h: Same.
	* include/backward/set.h: Same.
	* include/backward/hashtable.h: Same.
	* include/backward/hash_set.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/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/defalloc.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.
	* testsuite/backward/header_hash_set_h.cc: Same.
	* testsuite/backward/header_slist_h.cc: Same.
	* testsuite/backward/header_hash_map_h.cc: Same.
	* testsuite/backward/header_tempbuf_h.cc: Same.
	* testsuite/backward/header_deque_h.cc: Same.
	* testsuite/backward/header_rope_h.cc: Same.
	* testsuite/backward/header_iterator_h.cc: Same.
	* testsuite/backward/header_hashtable_h.cc: Same.

2007-10-18  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/30085
	* include/debug/unordered_map: New.
	* include/debug/unordered_set: New.
	* include/debug/safe_association.h: New.	
	* include/std/unordered_map: Include debug header if _GLIBCXX_DEBUG.
	* include/std/unordered_set: Same.
	* include/Makefile.am (debug_headers): Add unordered_map,
	unordered_set, safe_association.h.
	* include/Makefile.in: Regenerate.
	* testsuite/23_containers/unordered_map/requirements/debug.cc: New.
	* testsuite/23_containers/unordered_multimap/requirements/
	debug.cc: New.
	* testsuite/23_containers/unordered_set/requirements/debug.cc: New.
	* testsuite/23_containers/unordered_multiset/requirements/
	debug.cc: New.

2007-10-18  Benjamin Kosnik  <bkoz@redhat.com>
	
	* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Remove
	hash_map include.

From-SVN: r129442
2007-10-18 15:22:58 +00:00
Paolo Carlini
741e7594be re PR libstdc++/33807 (Incorrect ambiguous overload)
2007-10-18  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/33807
	* include/bits/allocator.h (operator==(const allocator<_Tp>&,
	const allocator<_Tp>&), operator!=(const allocator<_Tp>&,
	const allocator<_Tp>&)): Add.
	* testsuite/20_util/allocator/33807.cc: New.

From-SVN: r129434
2007-10-18 10:00:18 +00:00
Paolo Carlini
394033f804 cpp_type_traits.h (__is_byte): Add.
2007-10-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/cpp_type_traits.h (__is_byte): Add.
	* include/bits/stl_algobase.h (struct __fill, struct __fill_n,
	__fill_aux, __fill_n_aux): Remove.
	(__fill_a, __fill_n_a): Add.
	(fill, fill_n): Adjust.

From-SVN: r129421
2007-10-17 21:21:13 +00:00
Paolo Carlini
45d506995c stl_iterator.h (back_insert_iterator<>::operator= (typename _Container::value_type&&), [...]): Add.
2007-10-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_iterator.h (back_insert_iterator<>::operator=
	(typename _Container::value_type&&), front_insert_iterator<>::
	operator=(typename _Container::value_type&&), insert_iterator<>::
	operator=(typename _Container::value_type&&)): Add.

	* include/bits/stl_iterator.h (insert_iterator<>::operator=
	(typename _Container::const_reference)): Fix typo in signature.

From-SVN: r129413
2007-10-17 17:44:09 +00:00
Paolo Carlini
7aa1cb97eb stl_queue.h (queue<>::queue(_Sequence&&), [...]): Add.
2007-10-16  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_queue.h (queue<>::queue(_Sequence&&),
	queue<>::queue(queue&&), queue<>::operator=(queue&&),
	queue<>::push(value_type&&), queue<>::swap(queue&&),
	swap(queue<>&, queue<>&), swap(queue<>&&, queue<>&),
	swap(queue<>&, queue<>&&), priority_queue<>::
	priority_queue(const _Compare&, _Sequence&&),
	priority_queue<>::priority_queue(_InputIterator, _InputIterator,
	const _Compare&, _Sequence&&),
	priority_queue<>::priority_queue(priority_queue&&),
	priority_queue<>::operator=(priority_queue&&),
	priority_queue<>::push(value_type&&),
	priority_queue<>::swap(priority_queue&&),
	swap(priority_queue<>&, priority_queue<>&),
	swap(priority_queue<>&&, priority_queue<>&),
	swap(priority_queue<>&, priority_queue<>&&)): Add.
	* include/bits/stl_stack.h (stack<>::stack(_Sequence&&),
	stack<>::push(value_type&&), stack<>::swap(stack&&),
	swap(stack<>&, stack<>&), swap(stack<>&&, stack<>&),
	swap(stack<>&, stack<>&&)): Add.
	* testsuite/23_containers/queue/moveable.cc: New.
	* testsuite/23_containers/priority_queue/moveable.cc: Likewise.

From-SVN: r129390
2007-10-16 21:54:41 +00:00
Paolo Carlini
053cc3801b vstring.h (__versa_string<>:: __versa_string(__versa_string&&), [...]): Add.
2007-10-16  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/vstring.h (__versa_string<>::
	__versa_string(__versa_string&&),
	__versa_string<>::operator=(__versa_string&&,
	swap(__versa_string<>&&, __versa_string<>&),
	swap(__versa_string<>(&, __versa_string<>&&)): Add.
	(__versa_string<>::swap(__versa_string&&)): Adjust for C++0x.
	* include/ext/sso_string_base.h
	(__sso_string_base(__sso_string_base&&)): Add.
	(__sso_string_base()): Use _Alloc_hider(_CharT*).
	* include/ext/rc_string_base.h (__rc_string_base(__rc_string_base&&)):
	Add.
	(__rc_string_base()): Use _Alloc_hider(_CharT*).
	* include/ext/vstring_util.h (_Alloc_hider::_Alloc_hider(_CharT*)):
	Add.
	* testsuite/ext/vstring/moveable.cc: Add.

	* include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Add.
	* include/bits/stl_map.h (map<>::map(map&&)): Forward to the latter.
	* include/bits/stl_set.h (set<>::set(set&&)): Likewise.
	* include/bits/stl_multimap.h (multimap<>::multimap(multimap&&)):
	Likewise.
	* include/bits/stl_multiset.h (multiset<>::multiset(multiset&&)):
	Likewise.
	* include/bits/stl_deque.h (_Deque_base<>::_Deque_base(_Deque_base&&)):
	Add.
	(deque<>::deque(deque&&)): Forward to the latter.
	* include/bits/stl_list.h (_List_base<>::_List_base(_List_base&&)):
	Add.
	(list<>::list(list&&)): Forward to the latter.
	* include/bits/stl_vector.h
	(_Vector_base<>::_Vector_base(_Vector_base&&)): Add.
	(vector<>::vector(vector&&)): Forward to the latter.
	* include/bits/stl_bvector.h
	(_Bvector_base<>::_Bvector_base(_Bvector_base&&)): Add.
	(vector<bool>::vector(vector&&)): Forward to the latter.

	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error lines.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r129381
2007-10-16 15:20:09 +00:00
Paolo Carlini
0cd50f8913 set.h (set<>::cbegin, [...]): Add.
2007-10-15  Paolo Carlini  <pcarlini@suse.de>

	* include/debug/set.h (set<>::cbegin, cend, crbegin, crend): Add.
	* include/debug/multiset.h (set<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/debug/vector (vector<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/debug/map.h (map<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/debug/deque (deque<>::cbegin, cend, crbegin, crend): 
	Likewise.
	* include/debug/list (list<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/debug/multimap.h (multimap<>::cbegin, cend, crbegin,
	crend): Likewise.
	* include/tr1_impl/array (array<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/ext/vstring.h (__versa_string<>::cbegin, cend, crbegin,
	crend): Likewise.
	* include/bits/stl_list.h (list<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/bits/stl_map.h (map<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/bits/stl_set.h (set<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/bits/stl_multimap.h (multimap<>::cbegin, cend, crbegin,
	crend): Likewise.
	* include/bits/stl_vector.h (vector<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/bits/stl_deque.h (deque<>::cbegin, cend, crbegin, crend):
	Likewise.
	* include/bits/stl_multiset.h (multiset<>::cbegin, cend, crbegin,
	crend): Likewise.
	* include/bits/stl_bvector.h (vector<bool>::cbegin, cend, crbegin,
	crend): Likewise.
	* include/tr1_impl/hashtable (_Hashtable<>::cbegin, cend): Add.	

	* testsuite/ext/vstring/requirements/citerators.cc: Add.
	* testsuite/23_containers/unordered_map/requirements/citerators.cc:
	Likewise.
	* testsuite/23_containers/multimap/requirements/citerators.cc:
	Likewise.
	* testsuite/23_containers/set/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/citerators.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/vector/bool/requirements/citerators.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/citerators.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/map/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/array/requirements/citerators.cc: Likewise.

	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error lines.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r129370
2007-10-15 20:51:53 +00:00
Paolo Carlini
4b7ed13a8f stl_algo.h (is_sorted, [...]): Add.
2007-10-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (is_sorted, is_sorted_until): Add.
	* include/bits/algorithmfwd.h: Add.
	* include/ext/algorithm: Adjust.
	* testsuite/25_algorithms/is_sorted/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/25_algorithms/is_sorted/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/is_sorted/1.cc: Likewise.
	* testsuite/25_algorithms/is_sorted_until/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/is_sorted_until/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/is_sorted_until/1.cc: Likewise.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc:
	Add is_sorted and is_sorted_until.

	* include/bits/stl_heap.h (is_heap_until): Add concept and
	debug-mode checks.

From-SVN: r129303
2007-10-14 21:17:23 +00:00
Paolo Carlini
e69f1bad5d stl_heap.h (__is_heap_until): Add.
2007-10-12  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_heap.h (__is_heap_until): Add.
	(__is_heap(_RandomAccessIterator, _Distance),
	__is_heap(_RandomAccessIterator, _Compare, _Distance)):
	Adjust, call the latter.
	(is_heap, is_heap_until): Add, call the above.
	* include/bits/algorithmfwd.h: Add.
	* testsuite/25_algorithms/is_heap/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/25_algorithms/is_heap/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/is_heap/1.cc: Likewise.
	* testsuite/25_algorithms/is_heap_until/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/is_heap_until/requirements/
	explicit_instantiation/pod.cc: Likewise.
	* testsuite/25_algorithms/is_heap_until/1.cc: Likewise.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc:
	Add is_heap and is_heap_until.

From-SVN: r129266
2007-10-12 16:26:03 +00:00
Chris Jefferson
d70e9d8156 stl_heap.h (__push_heap, [...]): Use _GLIBCXX_MOVE.
2007-10-11  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_heap.h (__push_heap, push_heap, __adjust_heap,
	make_heap): Use _GLIBCXX_MOVE.
	(__pop_heap): Likewise, adjust signature.
	(pop_heap): Adjust __pop_heap call.
	* include/bits/stl_algo.h (__heap_select): Likewise.
	* testsuite/25_algorithms/heap/moveable.cc: Remove dg-require-rvalref.
	* testsuite/25_algorithms/partial_sort/moveable.cc: Likewise.

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

From-SVN: r129237
2007-10-11 17:56:31 +00:00
Paolo Carlini
e14e932bbb stl_algobase.h (swap): Move...
2007-10-10  Paolo Carlini  <pcarlini@suse.de>
	    Chris Fairles  <chris.fairles@gmail.com>

	* include/bits/stl_algobase.h (swap): Move...
	* include/bits/stl_move.h: ... here.
	* include/bits/stl_pair.h (pair<>::pair(_U1&&, _U2&&),
	pair<>::pair(pair<>&&), pair<>::operator=(pair<>&&),
	pair<>::swap(pair&&), swap(&, &), swap(&&, &), swap(&, &&),
	make_pair(_T1&&, _T2&&)): Add.
	* testsuite/20_util/pair/swap.cc: Add.

Co-Authored-By: Chris Fairles <chris.fairles@gmail.com>

From-SVN: r129198
2007-10-10 09:29:11 +00:00
Paolo Carlini
56a51b00a9 boost_concept_check.h (*AssociativeContainerConcept): Remove, unused.
2007-10-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/boost_concept_check.h (*AssociativeContainerConcept):
	Remove, unused.

From-SVN: r129165
2007-10-09 13:30:56 +00:00
Paolo Carlini
d98f312ce6 stl_move.h (_GLIBCXX_MOVE): Add.
2007-10-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_move.h (_GLIBCXX_MOVE): Add.
	* include/bits/stl_algobase.h: Adjust.
	* include/bits/stl_pair.h: Likewise.

	* include/bits/stl_algo.h: Minor formatting fixes.

From-SVN: r129138
2007-10-08 20:02:11 +00:00
Paolo Carlini
1476e59ccc [multiple changes]
2007-10-08  Paolo Carlini  <pcarlini@suse.de>

	* include/std/utility (identity, move, forward): Move to...
	* include/bits/stl_move.h: ... here.
	* include/Makefile.am: Add.
	* include/bits/stl_algobase.h: Include the latter.
	* include/Makefile.in: Regenerate.
	* testsuite/20_util/pair/moveable.cc: Remove dg-require-rvalref.

2007-10-08  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_pair.h (pair<>:pair(pair&&),
	pair<>::operator=(pair&&)): Add.

From-SVN: r129124
2007-10-08 11:19:37 +00:00
Paolo Carlini
6c5f0578d9 [multiple changes]
2007-10-08  Paolo Carlini  <pcarlini@suse.de>

	* include/std/utility (identity, move, forward): Move to...
	* include/bits/stl_move.h: ... here.
	* include/Makefile.am: Add.
	* include/bits/stl_algobase.h: Include the latter.
	* include/Makefile.in: Regenerate.
	* testsuite/20_util/pair/moveable.cc: Remove dg-require-rvalref.

2007-10-08  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_pair.h (pair<>:pair(pair&&),
	pair<>::operator=(pair&&)): Add.

From-SVN: r129123
2007-10-08 11:16:51 +00:00
Paolo Carlini
3a6b0f5465 [multiple changes]
2007-10-07  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (_GLIBCXX_MOVE): Add.
	(swap, __iter_swap): Use it.
	* testsuite/25_algorithms/rotate/moveable.cc: Remove dg-require-rvalref.
	* testsuite/25_algorithms/remove/moveable.cc: Likewise.
	* testsuite/25_algorithms/partition/moveable.cc: Likewise. 
	* testsuite/25_algorithms/swap_ranges/moveable.cc: Likewise.
	* testsuite/25_algorithms/reverse/moveable.cc: Likewise. 
	* testsuite/25_algorithms/unique/moveable.cc: Likewise. 
	* testsuite/25_algorithms/remove_if/moveable.cc: Likewise. 

	* include/bits/stl_algobase.h (lexicographical_compare):
	Clean up.

2007-10-07  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (remove, remove_if, unique,
	__rotate(_RandomAccessIterator, _RandomAccessIterator,
	_RandomAccessIterator, random_access_iterator_tag)): Use _GLIBCXX_MOVE.
	(__rotate(_ForwardIterator, _ForwardIterator, _ForwardIterator,
	forward_iterator_tag), __rotate(_BidirectionalIterator,
	_BidirectionalIterator, _BidirectionalIterator,
	bidirectional_iterator_tag), __partition(_ForwardIterator,
	_ForwardIterator, _Predicate, forward_iterator_tag)): Use iter_swap.

From-SVN: r129068
2007-10-07 11:14:11 +00:00
Benjamin Kosnik
6f95a65aa1 re PR libstdc++/33487 (parallel v3: more functions not in right namespace)
2007-10-06  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/33487
	* include/parallel/algorithmfwd.h (for_each, generate, generate_n,
	transform, replace, replace_if, max_element, min_element, count,
	count_if): Consistently construct overloads.
	* include/parallel/numericfwd.h (accumulate, adjacent_difference,
	inner_product): Same.
	* include/parallel/algobase.h: Same.
	* include/parallel/algo.h: Same.
	* include/parallel/numeric: Same.

	* include/bits/algorithmfwd.h: Correct find_end placement.

	* docs/html/parallel_mode.html: Document some of the interface
	conventions.

	* include/parallel/search.h (calc_borders): Only use operator ==.
	
	* include/parallel/algorithmfwd.h: Move __gnu_sequential bits to...
	* include/parallel/tags.h: ...here, and use a using directive.

	* include/parallel/random_shuffle.h: Include stl_numeric. Qualify
	uses of partial_num with __gnu_sequential.

	* include/parallel/tree.h: Formatting.

From-SVN: r129054
2007-10-06 15:08:58 +00:00
Paolo Carlini
f63bc637f6 moveable.cc: Remove dg-require-rvalref.
2007-10-05  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref.
	* testsuite/23_containers/multimap/moveable.cc: Likewise.
	* testsuite/23_containers/set/moveable.cc: Likewise. 
	* testsuite/23_containers/multiset/moveable.cc: Likewise.
	* testsuite/23_containers/deque/moveable.cc: Likewise. 
	* testsuite/23_containers/list/moveable.cc: Likewise. 
	* testsuite/23_containers/vector/moveable.cc: Likewise. 
	* include/std/utility: Use _GLIBCXX_BEGIN_NAMESPACE.

2007-10-05  Paolo Carlini  <pcarlini@suse.de>
	    Chris Jefferson  <chris@bubblescope.net>

	* include/bits/stl_iterator.h (class move_iterator,
	make_move_iterator): Add.

Co-Authored-By: Chris Jefferson <chris@bubblescope.net>

From-SVN: r129048
2007-10-06 02:33:12 +00:00
Paolo Carlini
78b36b70be [multiple changes]
2007-10-04  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.

2007-10-04  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (list<>::list(list&&),
	list<>::operator=(list&&)): Add.
	(list<>::swap): Adjust.
	(swap(list&&, list& __y), swap(list&, list&& __y)): Add.
	* include/bits/stl_vector.h (vector<>::vector(vector&&),
	vector<>::operator=(vector&&)): Add.
	(vector<>::swap): Adjust.
	(swap(vector&&, vector& __y), swap(vector&, vector&& __y)): Add.
	* include/bits/stl_bvector.h (vector<>::vector(vector&&),
	vector<>::operator=(vector&&)): Add.
	(vector<>::swap): Adjust.
	* include/bits/stl_deque.h (deque<>::deque(deque&&),
	deque<>::operator=(deque&&)): Add.
	(deque<>::swap): Adjust.
	(swap(deque&&, deque& __y), swap(deque&, deque&& __y)): Add.
	* include/bits/stl_set.h (set<>::set(set&&),
	set<>::operator=(set&&)): Add.
	(set<>::swap): Adjust.
	(swap(set&&, set& __y), swap(set&, set&& __y)): Add.
	* include/bits/stl_map.h (map<>::map(map&&),
	map<>::operator=(map&&)): Add.
	(map<>::swap): Adjust.
	(swap(map&&, map& __y), swap(map&, map&& __y)): Add.
	* include/bits/stl_multiset.h (multiset<>::multiset(multiset&&),
	multiset<>::operator=(multiset&&)): Add.
	(smultiet<>::swap): Adjust.
	(swap(multiset&&, multiset& __y),
	swap(multiset&, multiset&& __y)): Add.
	* include/bits/stl_multimap.h (multimap<>::multimap(multimap&&),
	multimap<>::operator=(multimap&&)): Add.
	(multimap<>::swap): Adjust.
	(swap(multimap&&, multimap& __y),
	swap(multimap&, multimap&& __y)): Add.

2007-10-04  Paolo Carlini  <pcarlini@suse.de>

	Avoid copying some allocator objects.
	* include/bits/stl_list.h (_List_impl::_List_impl(),
	_List_base::_List_base(), list<>::list()): Add.
	* include/bits/stl_vector.h  (_Vector_impl::_Vector_impl(),
	_Vector_base::_Vector_base(), vector<>::vector()): Add.
	* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl(),
	_Bvector_base::_Bvector_base(), vector<>::vector()): Add.
	* include/bits/stl_deque.h  (_Deque_impl::_Deque_impl(),
	_Deque_base::_Deque_base(), deque<>::deque()): Add.
	* include/bits/stl_tree.h (_Rb_tree_impl<>::_Rb_tree_impl(),
	_Rb_tree_impl<>::_M_initialize): Add.
	(_Rb_tree<>::_Rb_tree(const _Compare&, const allocator_type&),
	_Rb_tree(const _Rb_tree&)): Adjust.
	* include/bits/stl_set.h (set<>::set(),
	set(_InputIterator, _InputIterator)): Use _M_t default constructor. 
	* include/bits/stl_map.h (map<>::map(), set(_InputIterator,
	_InputIterator)): Use _M_t default constructor. 
	* include/bits/stl_multiset.h (multiset<>::multiset(),
	multiset(_InputIterator, _InputIterator)): Use _M_t default
	constructor. 
	* include/bits/stl_multimap.h (multimap<>::multimap(),
	multimap(_InputIterator, _InputIterator)): Use _M_t default
	constructor.

From-SVN: r129013
2007-10-04 15:12:34 +00:00
Paolo Carlini
f5ad31630d re PR libstdc++/33613 (compilation inconsistency upper_bound vs lower_bound with -D_GLIBCXX_DEBUG)
2007-10-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/33613
	* include/debug/functions.h (__check_partitioned): Rename to...
	(__check_partioned_lower): ... this.
	(__check_partioned_upper): Add.
	* include/debug/macros.h (__glibcxx_check_partitioned): Rename to...
	(__glibcxx_check_partitioned_lower): ... this, adjust.
	(__glibcxx_check_partitioned_upper): Add.
	* include/debug/debug.h (__glibcxx_requires_partitioned): Rename to...
	(__glibcxx_requires_partitioned_lower): ... this, adjust.
	(__glibcxx_requires_partitioned_upper): Add.
	* include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
	binary search): Use the above.
	* testsuite/25_algorithms/lower_bound/33613.cc: New.
	* testsuite/25_algorithms/upper_bound/33613.cc: Likewise.

From-SVN: r128974
2007-10-03 00:34:40 +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
Benjamin Kosnik
4f99f3d0e5 stl_algo.h: Add return type information to comments.
2007-09-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/stl_algo.h: Add return type information to comments.
	* include/bits/algorithmfwd.h: Formatting.
	* testsuite/util/testsuite_hooks.h (NonDefaultConstructible): Move..
	* testsuite/util/testsuite_api.h: ...here. Add necessary operators
	for use in testing chapters 25 and 26.
	* testsuite/util/testsuite_character.h: Same.

	* testsuite/25_algorithms/*/requirements/explicit_instantiation/
	2.cc, pod.cc: New.

	* testsuite/26_numerics/accumulate, adjacent_difference, inner_product,
	partial_sum/requirements/explicit_instantiation/2.cc, pod.cc: New.
	
	* testsuite/26_numerics/numeric_arrays/*: Move contents into
	testsuite/26_numerics.

	* testsuite/26_numerics/numeric_operations: Same.
	
	* testsuite/23_containers/*/requirements/explicit_instantiation/2.cc:
	Adjust includes from testsuite_eh.h to testsuite_api.h.


Co-Authored-By: Chalathip Thumkanon <chalathip@gmail.com>

From-SVN: r128822
2007-09-26 17:04:06 +00:00
Benjamin Kosnik
94dabea728 find.h: Doxygen fixups.
2007-09-12  Benjamin Kosnik  <bkoz@redhat.com>

	* include/parallel/find.h: Doxygen fixups.
	* include/bits/hashtable.h: Same.

From-SVN: r128440
2007-09-12 15:33:43 +00:00
Johannes Singler
c2ba97097b Add parallel mode.
2007-09-11  Johannes Singler  <singler@ira.uka.de>
	    Leonor Frias Moya  <lfrias@lsi.upc.edu>
            Felix Putze  <kontakt@felix-putze.de>
            Marius Elvert  <marius.elvert@ira.uka.de>
	    Felix Bondarenko  <f.bondarenko@web.de>
	    Robert Geisberger  <robert.geisberger@stud.uni-karlsruhe.de>
	    Robin Dapp  <r.dapp@freenet.de>
  	    Benjamin Kosnik  <bkoz@redhat.com>

	Add parallel mode.
	* include/parallel: New.
	* include/parallel/iterator.h: New.
	* include/parallel/multiway_merge.h: New.
	* include/parallel/parallel.h: New.
	* include/parallel/algorithm
	* include/parallel/find_selectors.h: New.
	* include/parallel/losertree.h: New.
	* include/parallel/list_partition.h: New.
	* include/parallel/types.h: New.
	* include/parallel/for_each.h: New.
	* include/parallel/multiseq_selection.h: New.
	* include/parallel/workstealing.h: New.
	* include/parallel/base.h: New.
	* include/parallel/par_loop.h: New.
	* include/parallel/numeric
	* include/parallel/features.h: New.
	* include/parallel/quicksort.h: New.
	* include/parallel/algorithmfwd.h: New.
	* include/parallel/equally_split.h: New.
	* include/parallel/compiletime_settings.h: New.
	* include/parallel/for_each_selectors.h: New.
	* include/parallel/basic_iterator.h: New.
	* include/parallel/omp_loop_static.h: New.
	* include/parallel/random_shuffle.h: New.
	* include/parallel/balanced_quicksort.h: New.
	* include/parallel/set_operations.h: New.
	* include/parallel/tags.h: New.
	* include/parallel/merge.h: New.
	* include/parallel/tree.h: New.
	* include/parallel/settings.h: New.
	* include/parallel/unique_copy.h: New.
	* include/parallel/multiway_mergesort.h: New.
	* include/parallel/numericfwd.h: New.
	* include/parallel/search.h: New.
	* include/parallel/partition.h: New.
	* include/parallel/compatibility.h: New.
	* include/parallel/algobase.h: New.
	* include/parallel/find.h: New.
	* include/parallel/partial_sum.h: New.
	* include/parallel/algo.h: New.
	* include/parallel/omp_loop.h: New.
	* include/parallel/queue.h: New.
	* include/parallel/timing.h: New.
	* include/parallel/sort.h: New.
	* include/parallel/checkers.h: New.
	* include/parallel/random_number.h: New.
	* include/bits/algorithmfwd.h: New.

	* acinclude.m4 (GLIBCXX_ENABLE_PARALLEL): New.
	* configure.host: Add atomic_flags.
	* configure.ac: Export ATOMIC_FLAGS, call GLIBCXX_ENABLE_PARALLEL.
	* src/Makefile.am: Add parallel_list rules.
	* include/Makefile.am: Add parallel files.
	* testsuite/Makefile.am (check-parallel): Add.
	(check-performance-parallel): Add.
	* config.h.in: Regenerate.
	* configure: Same.
	* libsupc++/Makefile.in: Same.
	* testsuite/Makefile.in: Same.
	* Makefile.in: Same.
	* libmath/Makefile.in: Same.
	* include/Makefile.in: Same.
	* src/Makefile.in: Same.
	* po/Makefile.in: Same.
	
	* config/abi/pre/gnu.ver: Export parallel list bits.

	* docs/html/parallel_mode.html: New.
	* docs/html/documentation.html: Add link.
	* docs/doxygen/user.cfg.in: Adjust for new files and directory.
	* docs/doxygen/doxygroups.cc: Adjust namespace markup.

	* include/debug/set.h: Adjust for _GLIBCXX_STD_D or _P change.
	* include/debug/bitset: Same.
	* include/debug/multiset.h: Same.
	* include/debug/vector: Same.
	* include/debug/map.h: Same.
	* include/debug/deque: Same.
	* include/debug/list: Same.
	* include/debug/debug.h: Same.
	* include/debug/multimap.h: Same.
	* include/std/algorithm: Same.
	* include/std/numeric: Same.
	* include/std/bitset: Same.
	* include/std/string: Same.
	* include/ext/hash_map: Same.
	* include/ext/hash_set: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_numeric.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/char_traits.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/c++config: Same.
	* include/bits/vector.tcc: Same.
	* include/bits/deque.tcc: Same.
	* include/bits/stl_bvector.h: Same.
	* include/bits/list.tcc: Same.
	* src/list.cc: Same.
	* src/parallel_list.cc: New.

	* testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): New.
	* testsuite/lib/dg-options.exp (dg-require-parallel-mode): New.
	* scripts/testsuite_flags.in (--cxxparallelflags): New.
	* scripts/check_performance: Adjust.
	* testsuite/25_algorithms/headers/parallel_algorithm.cc: New.
	* testsuite/25_algorithms/headers/algorithm_parallel_mode.cc: New.
	* testsuite/25_algorithms/headers/parallel_algorithm_mixed1.cc: New.
	* testsuite/25_algorithms/headers/parallel_algorithm_mixed2.cc: New.
	* testsuite/26_numerics/headers/numeric/parallel_numeric.cc: New.
	* testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc: New.
	* testsuite/26_numerics/headers/numeric/
	parallel_numeric_mixed1.cc: New.
	* testsuite/26_numerics/headers/numeric/
	parallel_numeric_mixed2.cc: New.
	

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
Co-Authored-By: Felix Bondarenko <f.bondarenko@web.de>
Co-Authored-By: Felix Putze <kontakt@felix-putze.de>
Co-Authored-By: Leonor Frias Moya <lfrias@lsi.upc.edu>
Co-Authored-By: Marius Elvert <marius.elvert@ira.uka.de>
Co-Authored-By: Robert Geisberger <robert.geisberger@stud.uni-karlsruhe.de>
Co-Authored-By: Robin Dapp <r.dapp@freenet.de>

From-SVN: r128395
2007-09-11 22:32:51 +00:00
Benjamin Kosnik
9adfc73cd3 functional_hash.h: Add ext/numeric_traits.h.
2007-09-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/functional_hash.h: Add ext/numeric_traits.h.
	* include/tr1/functional_hash.h Same.
	* include/tr1/functional: Remove string, ext/type_traits.h includes.
	* include/tr1_impl/functional_hash.h: Move string, wstring
	definitions for std::<hash>::operator into separate file.
	* include/std/functional
	* src/hash.cc: New, move definitions here.
	* src/hash_c++0x.cc: Same.
	* src/Makefile.am: Add new source files.
	* configure: Regenerate.
	* Makefile.in: Same.
	* src/Makefile.in: Same.
	* po/Makefile.in: Same.
	* libmath/Makefile.in: Same.
	* libsupc++/Makefile.in: Same.
	* testsuite/Makefile.in: Same.
	* config/abi/pre/gnu.ver: Add symbols.
	* config/abi/pre/gnu-versioned-namespace.ver: Same, fix.

From-SVN: r128278
2007-09-09 00:05:13 +00:00
Benjamin Kosnik
bd1a56a0c3 libstdc++.exp: Check CXXFLAGS.
2007-09-06  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/lib/libstdc++.exp: Check CXXFLAGS.
	* scripts/testsuite_flags.in: CXXFLAGS_default, matching dejagnu.

	* include/std/ostream: Spacing tweak.
	* include/ext/hashtable.h: Use <algorithm>.
	* include/ext/slist: Same.
	* include/ext/rope: Same.
	* include/bits/stl_function.h: Format.
	* include/tr1_impl/array: Remove section number in doxygen markup.
	* src/list.cc: Comment tweak.	
	
	* docs/doxygen/user.cfg.in: Update for include/tr1_impl.
	
	* testsuite/25_algorithms/search_n/iterator.cc: Add using declaration.
	* testsuite/25_algorithms/nth_element/1.cc:  Same.
	* testsuite/21_strings/char_traits/requirements/short/1.cc: Use
	char_type typedef to the underlying character type.	
	* testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc:
	Remove -ansi -pedantic-errors.
	* testsuite/21_strings/char_traits/requirements/char/typedefs.cc: Same.
	* testsuite/tr1/6_containers/headers/functional/synopsis.cc:
	Remove specializations.

From-SVN: r128225
2007-09-07 03:01:53 +00:00
Paolo Carlini
ccd04b9f89 stl_vector.h (_Vector_base<>::_M_allocate): Do not call _M_impl.allocate when __n == 0.
2007-09-06  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (_Vector_base<>::_M_allocate):
	Do not call _M_impl.allocate when __n == 0.
	* testsuite/23_containers/vector/zero_sized_allocations.cc: New.

From-SVN: r128220
2007-09-07 01:37:31 +00:00
Paolo Carlini
d46c958bfa re PR libstdc++/33293 (inlining std::inner_product())
2007-09-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/33293
	* include/bits/stl_numeric.h (accumulate, inner_product):
	Add inline function-specifier.

From-SVN: r128053
2007-09-03 17:48:31 +00:00
Benjamin Kosnik
0646d8a378 system_error: New file.
2007-08-23  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/system_error: New file.
	* src/system_error.cc: New file.
	* src/Makefile.am (sources): Add.
	* src/Makefile.in: Regenerate.	
	* include/Makefile.am (std_headers): Add system_error.
	* include/Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New.
	* configure.ac: Call it.
	* config.h.in: Regenerate.
	* include/bits/functional_hash.h: Add hash<error_code>.
 	* include/std/ostream: Add inserters for error_code.
	
	* docs/doxygen/user.cfg.in: Add system_error.

	* config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols.

	* testsuite/19_diagnostics/error_code: New.
	* testsuite/19_diagnostics/error_code/cons: Same.
	* testsuite/19_diagnostics/error_code/cons/1.cc: Same.
	* testsuite/19_diagnostics/error_code/operators: Same.
	* testsuite/19_diagnostics/error_code/operators/bool.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/equal.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same.
	* testsuite/19_diagnostics/error_category: Same.
	* testsuite/19_diagnostics/error_category/cons: Same.
	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same.
	* testsuite/19_diagnostics/error_category/cons/default.cc: Same.
	* testsuite/19_diagnostics/error_category/operators: Same.
	* testsuite/19_diagnostics/error_category/operators/equal.cc: Same.
	* testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same.
	* testsuite/19_diagnostics/headers/system_error: Same.
	* testsuite/19_diagnostics/headers/system_error/
	types_std_c++0x.cc: Same.
	* testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same.
	* testsuite/19_diagnostics/system_error: Same.
	* testsuite/19_diagnostics/system_error/
	cons_virtual_derivation.cc: Same.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Same.
	* testsuite/19_diagnostics/system_error/what-1.cc: Same.
	* testsuite/19_diagnostics/system_error/what-2.cc: Same.
	* testsuite/19_diagnostics/system_error/what-big.cc: Same.
	* testsuite/19_diagnostics/system_error/what-3.cc: Same.
	* testsuite/19_diagnostics/system_error/what-4.cc: Same.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
	error_code.cc: Same.
	* testsuite/27_io/basic_ostream/inserters_other/char/
	error_code.cc: Same.
	* testsuite/tr1/6_containers/hash/operators: New.
	* testsuite/tr1/6_containers/hash/operators/size_t.cc: Same.
	
	* testsuite/23_containers/hash: Move...
	* testsuite/20_util/hash: ... here.
	* testsuite/20_util/hash/operators: New.
	* testsuite/20_util/hash/operators/size_t.cc: New.

	* testsuite/20_util/function_objects/bad_function_call: Move...
	* testsuite/20_util/bad_function_call: ...here.

From-SVN: r127744
2007-08-23 16:16:41 +00:00
Benjamin Kosnik
65be6ddd76 Makefile.am (install-data-local): Remove pch-install rules.
2007-08-21  Benjamin Kosnik  <bkoz@montsouris.artheist.org>

	* include/Makefile.am (install-data-local): Remove pch-install rules.
	(host_headers): Add stdc++.h, stdtr1c++.h, extc++.h.
	* include/Makefile.in: Regenerate.
	* config.h.in: Same.

	* scripts/check_compile: Remove space between outputs.	
	* include/ext/throw_allocator.h: Correct doxygen markup.	
	* include/bits/char_traits.h: Correct spacing.
	* include/bits/stl_function.h: Same, for 80 column.
	* include/std/valarray: Same.
	* testsuite/util/testsuite_iterators.h: Same.	
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Format.

From-SVN: r127685
2007-08-22 01:26:43 +00:00
Paolo Carlini
2ee0c1fb57 DR 660, [Ready] in Toronto.
2007-08-02  Paolo Carlini  <pcarlini@suse.de>

	DR 660, [Ready] in Toronto.
	* include/bits/stl_function.h (bit_and, bit_or, bit_xor): Add.
	* testsuite/20_util/function_objects/dr660.cc: New.
	* docs/html/ext/howto.html: Add an entry for DR 660, update.

	* docs/html/ext/lwg-closed.html, docs/html/ext/lwg-active.html,
	docs/html/ext/lwg-defects.html: Import Revision 49.

From-SVN: r127166
2007-08-02 17:39:51 +00:00
Paolo Carlini
c2fe93f7ba re PR libstdc++/32908 (Miss lexicographical_compare random access override)
2007-07-30  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/32908
	* include/bits/stl_algobase.h (struct __lc_rai): New.
	(lexicographical_compare(_II1, _II1, _II2, _II2),
	lexicographical_compare(_II1, _II1, _II2, _II2, _Compare)): Use it.
	* testsuite/performance/25_algorithms/lexicographical_compare.cc: New.

From-SVN: r127073
2007-07-30 21:14:52 +00: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
Jim Xochellis
58b9f26a61 stl_algo.h (search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Tidy.
2007-07-09  Jim Xochellis  <jimxoch@yahoo.gr>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (search(_ForwardIterator1,
	_ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Tidy.
	(search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2,
	_ForwardIterator2, _BinaryPredicate)): Likewise.

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

From-SVN: r126479
2007-07-09 09:00:34 +00:00
Jim Xochellis
e5e941450f stl_algo.h (search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Simplify general case loop to a for(;;).
2007-07-04  Jim Xochellis  <jimxoch@yahoo.gr>

	* include/bits/stl_algo.h (search(_ForwardIterator1,
	_ForwardIterator1, _ForwardIterator2, _ForwardIterator2)): Simplify
	general case loop to a for(;;).
	(search(_ForwardIterator1, _ForwardIterator1, _ForwardIterator2,
	_ForwardIterator2, _BinaryPredicate)): Likewise; remove redundant
	inner loop.

From-SVN: r126347
2007-07-05 00:50:56 +00:00
Paolo Carlini
046d30f4e0 stl_list.h: Rename guard macro consistently with file name.
2007-06-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h: Rename guard macro consistently with
	file name.
	* include/bits/stl_algobase.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/stl_iterator_base_types.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_pair.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_iterator_base_funcs.h: Likewise.
	* include/bits/stl_algo.h: Likewise.
	* include/bits/stl_iterator.h: Likewise.
	* include/bits/stl_tempbuf.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_function.h: Likewise.
	* include/bits/stl_tree.h: Likewise.

From-SVN: r125815
2007-06-18 17:22:53 +00:00
Paolo Carlini
266a2cbaec re PR libstdc++/32233 (warning in stl_vector.h:832)
2007-06-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/32233
	* include/bits/stl_vector.h (_M_fill_initialize): Fix return type.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r125499
2007-06-06 18:44:02 +00:00
Paolo Carlini
e133ace8d9 re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x)
2007-05-31  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31426
	* include/bits/c++config: Remove namespace association bits
	from tr1 to std.

	* include/ext/type_traits.h (__promote, __promote2,
	__promote3, __promote4): Add.

	* include/bits/hashtable.h: New.
	* include/bits/functional_hash.h: Likewise.
	* include/tr1/hashtable.h: Likewise.

	* include/tr1_impl/random: New.
	* include/tr1_impl/cinttypes: Likewise.
	* include/tr1_impl/cstdlib: Likewise.
	* include/tr1_impl/unordered_map: Likewise.
	* include/tr1_impl/cstdio: Likewise.
	* include/tr1_impl/boost_shared_ptr.h: Likewise.
	* include/tr1_impl/cctype: Likewise.
	* include/tr1_impl/random.tcc: Likewise.
	* include/tr1_impl/tuple: Likewise.
	* include/tr1_impl/functional_hash.h: Likewise.
	* include/tr1_impl/hashtable: Likewise.
	* include/tr1_impl/cmath: Likewise.
	* include/tr1_impl/type_traitsfwd.h: Likewise.
	* include/tr1_impl/hashtable_policy.h: Likewise.
	* include/tr1_impl/cfenv: Likewise.
	* include/tr1_impl/unordered_set: Likewise.
	* include/tr1_impl/functional: Likewise.
	* include/tr1_impl/utility: Likewise.
	* include/tr1_impl/complex: Likewise.
	* include/tr1_impl/type_traits: Likewise.
	* include/tr1_impl/cwchar: Likewise.
	* include/tr1_impl/cstdint: Likewise.
	* include/tr1_impl/regex: Likewise.
	* include/tr1_impl/array: Likewise.
	* include/tr1_impl/cwctype: Likewise.

	* include/tr1/type_traitsfwd.h: Remove.
	* include/tr1/boost_shared_ptr.h: Likewise.
	* include/tr1/common.h: Likewise.
	* include/tr1/hashtable: Likewise.
	* include/tr1/hashtable_policy.h: Likewise.
	* include/tr1/random.tcc: Likewise.

	* include/c_global/cinttypes: Include tr1_impl/cinttypes.
	* include/c_global/cstdlib: Likewise for cstdlib.
	* include/c_global/cstdio: Likewise for cstdio.
	* include/c_global/cctype: Likewise for cctype.
	* include/c_global/cmath: Likewise for cmath.
	* include/c_global/cfenv: Likewise for cfenv.
	* include/c_global/cwchar: Likewise for cwchar.
	* include/c_global/cstdint: Likewise for cstdint.
	* include/c_global/cwctype: Likewise for cwctype.
	* include/tr1/cinttypes: Likewise for cinttypes.
	* include/tr1/cstdlib: Likewise for cstdlib.
	* include/tr1/cstdio: Likewise for cstdio.
	* include/tr1/cctype: Likewise for cctype.
	* include/tr1/cmath: Likewise for cmath.
	* include/tr1/cfenv: Likewise for cfenv.
	* include/tr1/cwchar: Likewise for cwchar.
	* include/tr1/cstdint: Likewise for cstdint.
	* include/tr1/cwctype: Likewise for cwctype.
	* include/tr1/functional_hash.h: Likewise for functional_hash.

	* include/std/tuple: Include tr1_impl/tuple.
	* include/std/utility: Likewise for utility.
	* include/std/type_traits: Likewise for type_traits.
	(is_pod): Just forward to __is_pod.
	(has_trivial_default_constructor): Just forward to
	__has_trivial_constructor.
	(has_trivial_copy_constructor): Just forward to __has_trivial_copy.
	(has_trivial_assign): Just forward to __has_trivial_assign.
	(has_trivial_destructor): Just forward to __has_trivial_destructor.
	(has_nothrow_default_constructor): Just forward to
	__has_nothrow_constructor.
	(has_nothrow_copy_constructor): Just forward to __has_nothrow_copy.
	(has_nothrow_assign): Just forward to __has_nothrow_assign.
	(is_base_of): Just forward to __is_base_of.
	(is_signed, is_unsigned): Implement according to the C++0x
	specifications.
	* include/std/memory: Likewise for memory.
	* include/std/regex: Likewise for regex.
	* include/std/random: Likewise for random.
	* include/std/unordered_map: Likewise for unordered_map.
	* include/std/unordered_set: Likewise for unordered_set.
	* include/std/functional: Likewise for functional.
	* include/std/complex: Likewise for complex.
	* include/std/array: Likewise for array.
	* include/tr1/tuple: Likewise for tuple.
	* include/tr1/utility: Likewise for utility.
	* include/tr1/type_traits: Likewise for type_traits
	* include/tr1/memory: Likewise for memory.
	* include/tr1/regex: Likewise for regex.
	* include/tr1/random: Likewise for random.
	* include/tr1/unordered_map: Likewise for unordered_map.
	* include/tr1/unordered_set: Likewise for unordered_set.
	* include/tr1/functional: Likewise for functional.
	* include/tr1/complex: Likewise for complex.
	* include/tr1/array: Likewise for array.

	* include/c_global/ctgmath: Tweak.
	* include/c_global/cstdarg: Likewise.
	* include/c_global/ctime: Likewise.
	* include/c_global/climits: Likewise.
	* include/c_global/cfloat: Likewise.	
	* include/c_global/ccomplex: Likewise.
	* include/c_global/cstdbool: Likewise.

	* include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1.
	* include/tr1/riemann_zeta.tcc: Likewise.
	* include/tr1/beta_function.tcc: Likewise.
	* include/tr1/exp_integral.tcc: Likewise.
	* include/tr1/hypergeometric.tcc: Likewise.
	* include/tr1/modified_bessel_func.tcc: Likewise.
	* include/tr1/legendre_function.tcc: Likewise.
	* include/tr1/special_function_util.h: Likewise.
	* include/tr1/bessel_function.tcc: Likewise.
	* include/tr1/poly_hermite.tcc: Likewise.
	* include/tr1/ell_integral.tcc: Likewise.
	* include/tr1/gamma.tcc: Likewise.
	* include/tr1/stdlib.h: Likewise.
	* include/tr1/math.h: Likewise.

	* include/tr1/complex.h: Minor tweaks.
	* include/tr1/wctype.h: Likewise.
	* include/tr1/wchar.h: Likewise.
	* include/tr1/inttypes.h: Likewise.
	* include/tr1/tgmath.h: Likewise.
	* include/tr1/cstdbool: Likewise.
	* include/tr1/cfloat: Likewise.
	* include/tr1/ccomplex: Likewise.
	* include/tr1/ctime: Likewise.
	* include/tr1/climits: Likewise.
	* include/tr1/ctgmath: Likewise.
	* include/tr1/cstdarg: Likewise.

	* testsuite/tr1/headers.cc: Move...
	* testsuite/tr1/headers/all.cc: ... here.
	* testsuite/tr1/using_namespace_std_tr1.cc: Move...
	* testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here.
	* testsuite/tr1/headers/using_namespace_std_tr1.cc ... here.
	* testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New.

	* testsuite/20_util/tuple/requirements/explicit_instantiation.cc:
	Adjust namespace.
	* testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to
	the C++0x requirements.
	* testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise.

	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error lines.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
	Un-xfail.

	* testsuite/20_util/is_signed/value.cc: New.
	* testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_signed/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/is_unsigned/value.cc: Likewise..
	* testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc:
	Likewise.

	* include/Makefile.am: Adjust.	
	* include/Makefile.in: Regenerate.

From-SVN: r125244
2007-05-31 23:37:56 +00:00
Paolo Carlini
f4c5578ffb PR c++/32158 (libstdc++ bits)
2007-05-31  Paolo Carlini  <pcarlini@suse.de>

	PR c++/32158 (libstdc++ bits)
	* include/bits/stl_uninitialized.h (__uninitialized_copy_aux,
	__uninitialized_fill_aux, __uninitialized_fill_n_aux):
	Remove.
	(struct __uninitialized_copy, struct __uninitialized_fill,
	struct __uninitialized_fill_n): Add.
	(uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
	Adjust.
	* testsuite/20_util/specialized_algorithms/32158.cc: New.

	* include/bits/stl_uninitialized.h (uninitialized_copy(_InputIterator,
	_InputIterator, _ForwardIterator)): Robustify vs non-POD input.

	* include/bits/stl_vector.h (_M_fill_initialize): New.
	(vector(size_type, const value_type&, const allocator_type&),
	_M_initialize_dispatch(_Integer, _Integer, __true_type)): Use it.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r125223
2007-05-31 11:13:57 +00:00
Paolo Carlini
da5a2efd39 stl_algo.h: Shuffle the functions to better match the order in the standard.
2007-05-20  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h: Shuffle the functions to better match the
	order in the standard.

From-SVN: r124874
2007-05-20 17:48:36 +00:00
Paolo Carlini
1d1c53d561 stl_algobase.h (mismatch): Move...
2007-05-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (mismatch): Move...
	* include/bits/stl_algo.h: ... here.

From-SVN: r124792
2007-05-17 11:52:06 +00:00
Paolo Carlini
a576fe880e locale_facets.tcc (__pad<>::_S_pad): Minor tweaks, avoid unnecessary casts, do widenings just in time.
2007-05-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (__pad<>::_S_pad): Minor tweaks, avoid
	unnecessary casts, do widenings just in time.

From-SVN: r124790
2007-05-17 09:01:27 +00:00
Paolo Carlini
56f78eecdc allocator.h: Do not include cpp_type_traits.h.
2007-05-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/allocator.h: Do not include cpp_type_traits.h.

From-SVN: r124716
2007-05-14 14:47:39 +00:00
Paolo Carlini
ee60de3614 postypes.h (class fpos<>): Remove redundant forward declaration.
2007-05-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/postypes.h (class fpos<>): Remove redundant forward
	declaration.

From-SVN: r124709
2007-05-14 10:52:05 +00:00
Paolo Carlini
de5e4138e5 stl_tempbuf.h (return_temporary_buffer(_Tp*)): Inline.
2007-05-13  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_tempbuf.h (return_temporary_buffer(_Tp*)): Inline.

From-SVN: r124654
2007-05-13 16:23:20 +00:00
Paolo Carlini
538075fe42 pod_char_traits.h (char_traits<>::move): Use __builtin_memmove.
2007-05-11  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/pod_char_traits.h (char_traits<>::move):
	Use __builtin_memmove.
	* include/bits/locale_classes.h (locale::_Impl::_M_check_same_name,
	collate_byname(const char*, size_t)): Use __builtin_strcmp.
	* include/bits/locale_facets.h: Use __builtin_mem* and
	__builtin_str* everywhere.
	* include/bits/codecvt.h (codecvt_byname(const char*, size_t)):
	Use __builtin_strcmp.
	* include/bits/char_traits.h: Use __builtin_mem* everywhere.
	* include/bits/fstream.tcc (basic_filebuf<>::underflow, imbue):
	Use __builtin_memcpy and __builtin_memmove.
	* include/bits/locale_facets_nonio.h (moneypunct_byname(const char*,
	size_t __refs)): Use __builtin_strcmp.
	* include/std/bitset (bitset<>::_M_do_reset): Use __builtin_memset.
	* config/locale/gnu/c_locale.h: Use __builtin_strlen, __builtin_strcmp,
	and __builtin_memcpy.
	* config/locale/gnu/messages_members.h: Likewise.
	* config/locale/gnu/time_members.h: Likewise.
	* config/locale/generic/c_locale.h: Likewise.
	* config/locale/generic/messages_members.h: Likewise.
	* config/locale/generic/time_members.h: Likewise.
	* config/os/gnu-linux/ctype_noninline.h: Likewise, avoid strdup.
	* config/os/tpf/ctype_noninline.h: Likewise.
	* config/locale/generic/codecvt_members.cc: Include <cstring>. 
	* config/locale/generic/ctype_members.cc: Likewise.
	* config/locale/generic/collate_members.cc: Likewise.
	* config/locale/gnu/c++locale_internal.h: Likewise.
	* config/locale/darwin/ctype_members.cc: Likewise.
	* src/ctype.cc: Likewise.
	* testsuite/19_diagnostics/logic_error/what-1.cc: Likewise.
	* testsuite/19_diagnostics/logic_error/what-2.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-1.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-2.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-3.cc: Likewise.
	* config/locale/gnu/messages_members.cc: Avoid strdup.
	* config/locale/gnu/monetary_members.cc: Likewise.
	* config/locale/gnu/time_members.cc: Likewise.	
	* config/locale/gnu/time_members.cc: Likewise.
	* config/locale/generic/c_locale.cc: Likewise.

From-SVN: r124623
2007-05-11 18:58:08 +00:00
Jason Merrill
fba10f59ff cxxabi-internal.h: Remove, to be replaced by...
* libsupc++/cxxabi-internal.h: Remove, to be replaced by...
        * libsupc++/cxxabi-forced.h: ...this new file.
        * include/ext/vstring.tcc: Include cxxabi-forced.h instead.
        * include/bits/istream.tcc: Likewise.
        * include/bits/ostream.tcc: Likewise.
        * include/bits/basic_string.tcc: Likewise.
        * include/bits/ostream_insert.h: Likewise.
        * include/bits/fstream.tcc: Likewise.
        * include/std/bitset: Likewise.
        * libsupc++/cxxabi.h: Restore previous contents.
        * Makefile.am (headers): Add cxxabi-forced.h.
        * Makefile.in: Regenerate.

From-SVN: r124539
2007-05-08 02:50:32 -04:00
Jason Merrill
04055200ed * include/bits/ostream.tcc (operator<<(char*)): Add __s.
From-SVN: r124522
2007-05-07 18:44:54 -04:00
Jason Merrill
d05f74f16e re PR other/28145 (C++ (throw() and catch(...) {/* fall through */ } ) and pthread cancellation are incompatible (at least with NPTL))
PR c++/28145
        * libsupc++/cxxabi.h (__forced_unwind, __foreign_exception):
        New classes.
        * libsupc++/eh_exception.cc: Define their destructors.
        * config/abi/pre/gnu.ver: Export their type_infos.
        * config/abi/pre/gnu-versioned-namespace.ver: Likewise.
        * libsupc++/eh_personality.cc: A handler for abi::__forced_unwind
        matches a forced unwind, and a handler for abi::__foreign_exception
        matches a foreign exception.

        * include/bits/istream.tcc: Rethrow forced unwind.
        * include/bits/ostream.tcc: Likewise.
        * include/bits/ostream_insert.h: Likewise.
        * include/bits/basic_string.tcc (operator>>, getline): Likewise.
        * include/bits/fstream.tcc (basic_filebuf::close): Likewise.
        * include/ext/vstring.cc (operator>>, getline): Likewise.
        * src/istream.cc: Likewise.
        * src/compatibility.cc (basic_istream::ignore): Likewise.
        * include/std/bitset (operator>>): Likewise.
        * include/std/fstream (basic_filebuf::close): Remove throw() spec.
        * libsupc++/cxxabi-internal.h: Split out from...
        * libsupc++/cxxabi.h: ...here.

From-SVN: r124517
2007-05-07 17:27:54 -04:00
Paolo Carlini
6ca20f85cf stl_algobase.h: Do not include <cstring>.
2007-05-07  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h: Do not include <cstring>.
	(copy(const _Tp*, const _Tp*, _Tp*), __copy_b(const _Tp*, const _Tp*,
	_Tp*)): Use __builtin_memmove.
	(__fill_aux): Use __builtin_memset.
	(equal(const _Tp*, const _Tp*, const _Tp*),
	lexicographical_compare(const unsigned char*, const unsigned char*,
	const unsigned char*, const unsigned char*)): Use __builtin_memcmp.
	*  include/bits/valarray_array.h: Do not include <cstring>.
	(_Array_default_ctor<, true>::_S_do_it): Use __builtin_memset.
	(_Array_copy_ctor<, true>::_S_do_it, _Array_copier<, true>::_S_do_it):
	Use __builtin_memcpy.
	* include/ext/algorithm
	(__lexicographical_compare_3way(const unsigned char*,
	const unsigned char*, const unsigned char*, const unsigned char*)):
	Use __builtin_memcmp.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r124512
2007-05-07 20:37:15 +00:00
Paolo Carlini
360721e336 stl_algobase.h: Do not include <cstring>.
2007-05-07  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h: Do not include <cstring>.
	(copy(const _Tp*, const _Tp*, _Tp*), __copy_b(const _Tp*, const _Tp*,
	_Tp*)): Use __builtin_memmove.
	(__fill_aux): Use __builtin_memset.
	(equal(const _Tp*, const _Tp*, const _Tp*),
	lexicographical_compare(const unsigned char*, const unsigned char*,
	const unsigned char*, const unsigned char*)): Use __builtin_memcmp.
	*  include/bits/valarray_array.h: Do not include <cstring>.
	(_Array_default_ctor<, true>::_S_do_it): Use __builtin_memset.
	(_Array_copy_ctor<, true>::_S_do_it, _Array_copier<, true>::_S_do_it):
	Use __builtin_memcpy.
	* include/ext/algorithm
	(__lexicographical_compare_3way(const unsigned char*,
	const unsigned char*, const unsigned char*, const unsigned char*)):
	Use __builtin_memcmp.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.

From-SVN: r124511
2007-05-07 20:36:40 +00:00
Paolo Carlini
558ef0f771 stl_raw_storage_iter.h (class raw_storage_iterator): Adjust template parameter name.
2007-05-04  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_raw_storage_iter.h (class raw_storage_iterator):
	Adjust template parameter name.

From-SVN: r124459
2007-05-05 01:15:46 +00:00
Paolo Carlini
acb8a4ef2d stl_memory.h: Rename to stl_auto_ptr.h.
2007-05-04  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_memory.h: Rename to stl_auto_ptr.h.
	(__get_temporary_buffer, get_temporary_buffer,
	return_temporary_buffer): Move...
	* include/bits/stl_tempbuf.h: ... here.
	* include/std/memory: Adjust includes.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust dg-error line
	numbers.
	* include/Makefile.am: Adjust.
	* include/Makefile.in: Regenerate.

	* testsuite/util/testsuite_iterators.h: Do not include the entire
	<iterator>.
	* include/bits/stl_iterator_base_types.h: Adjust includes.
	* testsuite/25_algorithms/unique_copy/2.cc: Include <functional>.

From-SVN: r124438
2007-05-04 18:07:10 +00:00
Paolo Carlini
c531371e87 stl_construct.h (_Destroy(_ForwardIterator, _ForwardIterator __last, _Allocator)): Change the last parameter to _Allocator&.
2007-05-04  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_construct.h (_Destroy(_ForwardIterator,
	_ForwardIterator __last, _Allocator)): Change the last parameter
	to _Allocator&.
	* include/bits/stl_uninitialized.h (__uninitialized_copy_a,
	__uninitialized_fill_a, __uninitialized_fill_n_a,
	__uninitialized_fill_copy, __uninitialized_copy_fill,
	__uninitialized_copy_copy): Likewise.
	* include/ext/rope: Adjust everywhere.
	* include/ext/ropeimpl.h: Likewise.

From-SVN: r124427
2007-05-04 15:06:46 +00:00
Paolo Carlini
d22a31664d PR libstdc++/30449 (equal)
2007-04-30  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/30449 (equal)
	* include/bits/stl_algobase.h (struct __niter_base): Add.
	(copy(_II, _II, _OI), copy_backward(_BI1, _BI1, _BI2),
	fill(_ForwardIterator, _ForwardIterator, const _Tp&),
	fill_n(_OI, _Size, const _Tp&), equal(_II1, _II1, _II2)):
	Use it.
	(struct __copy_normal, __copy_backward_normal,
	struct __fill_normal, struct __fill_n_normal): Remove.
	(struct __equal, struct __equal_aux): Add.
	* include/bits/stl_iterator.h: Add _Iterator_type typedef.

	* include/bits/stl_algobase.h (__fill_aux(wchar_t*,
	wchar_t*, wchar_t), __fill_n_aux(wchar_t*, _Size, wchar_t)):
	Remove.

	* testsuite/23_containers/requirements/sequences/dr438/vector/
	constructor_1_neg.cc: Adjust dg-error line number.
	* testsuite/23_containers/requirements/sequences/dr438/vector/
	constructor_2_neg.cc: Likewise.

From-SVN: r124295
2007-04-30 13:10:54 +00:00
Paolo Carlini
677e29e167 localefwd.h: Remove redundant inline qualifiers.
2007-04-29  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/localefwd.h: Remove redundant inline qualifiers.
	(__check_facet): Move...
	* include/bits/basic_ios.h: ... here.
	(widen(char), narrow(char_type, char)): Define inline.
	* include/bits/basic_ios.tcc (widen(char), narrow(char_type, char)):
	Remove.

From-SVN: r124282
2007-04-29 16:06:09 +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
dd42abcc7e locale_classes.h: Remove redundant inline specifiers.
2007-04-25  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_classes.h: Remove redundant inline specifiers.
	* include/bits/ios_base.h: Likewise.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust dg-error line
	numbers.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.

From-SVN: r124148
2007-04-25 09:25:05 +00:00
Paolo Carlini
84b31797f3 locale_facets.h (class collate, [...]): Move...
2007-04-24  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (class collate, class collate_byname):
	Move...
	* include/bits/locale_classes.h: ... here.
	* include/bits/locale_facets.tcc (locale::combine, locale::operator(),
	has_facet, use_facet, collate::_M_compare, collate::_M_transform,
	collate::do_compare, collate::do_transform, collate::do_hash): Move...
	* include/bits/locale_classes.tcc: ... here, new.
	* include/Makefile.am: Add.
	* testsuite/util/testsuite_abi.h: Include <locale>.
	* include/std/locale: Tweak.
	* include/std/istream: Likewise.
	* include/std/ostream: Likewise.
	* include/bits/codecvt.h: Likewise.
	* include/Makefile.in: Regenerate.

	* include/bits/codecvt.h: Adjust extern template declarations.
	* include/bits/ostream_insert.h: Likewise.
	* include/bits/ostream.tcc: Likewise.

	* include/bits/locale_facets.h: Do not include <bits/codecvt.h>.
	* include/std/fstream: Do it here.
	* include/bits/locale_facets_nonio.h: Likewise.

From-SVN: r124114
2007-04-24 18:57:12 +00:00
Paolo Carlini
f749a55bb4 locale_facets.h (class time_base, [...]): Move...
2007-04-23  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (class time_base,
	struct __timepunct_cache, class __timepunct, class time_get,
	class time_get_byname, class time_put, class time_put_byname,
	class money_base, struct __moneypunct_cache, class moneypunct,
	class moneypunct_byname, class money_get, class money_put,
	struct messages_base, class messages, class messages_byname): Move...
	* include/bits/locale_facets_nonio.h: ... here.
	* include/bits/locale_facets.tcc
	(struct __use_cache<__moneypunct_cache<> >,
	__moneypunct_cache<>::_M_cache, money_get<>::_M_extract,
	money_get<>::__do_get, money_get<>::do_get, money_put<>::_M_insert,
	money_put<>::__do_put, money_put<>::do_put, time_get<>::do_date_order,
	time_get<>::_M_extract_via_format, time_get<>::_M_extract_num,
	time_get<>::_M_extract_name, time_get<>::do_get_time,
	time_get<>::do_get_date, time_get<>::do_get_weekday,
	time_get<>::do_get_monthname, time_get<>::do_get_year, time_put<>::put,
	time_put<>::do_put): Move...
	* include/bits/locale_facets_nonio.tcc: ... here.
	* include/Makefile.am: Add.
	* include/std/locale: Adjust includes.
	* include/std/fstream: Likewise.
	* include/std/istream: Likewise.
	* include/std/ostream: Likewise.
	* include/Makefile.in: Regenerate.

From-SVN: r124080
2007-04-23 20:26:30 +00:00
Paolo Carlini
3b476281b6 locale_facets.tcc: Do not include <typeinfo>.
2007-04-22  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc: Do not include <typeinfo>.
	* testsuite/27_io/basic_ios/imbue/14072.cc: Do it here.
	* testsuite/27_io/basic_ios/cons/char/3.cc: Likewise.
	* testsuite/27_io/basic_istream/sentry/pod/1.cc: Likewise.
	* testsuite/27_io/basic_ostream/sentry/pod/1.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/
	pod/10081-in.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/
	pod/10081-out.cc: Likewise.
	* testsuite/22_locale/locale/cons/2.cc: Likewise.
	* testsuite/22_locale/locale/cons/unicode.cc: Likewise.
	* testsuite/22_locale/numpunct/members/pod/2.cc: Likewise.
	* testsuite/22_locale/global_templates/1.cc: Likewise.

From-SVN: r124039
2007-04-22 10:09:11 +00:00
Paolo Carlini
dded9d2ca8 re PR libstdc++/31556 (find_if uses operator! instead of conversion to bool)
2007-04-13  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31556
	* include/bits/stl_algobase.h (equal(_InputIterator1, _InputIterator1,
	_InputIterator2, _BinaryPredicate), mismatch(_InputIterator1,
	_InputIterator1, _InputIterator2, _BinaryPredicate)): Convert
	predicate return to bool.
	* include/bits/stl_algo.h (__find_if(_InputIterator, _InputIterator,
	_Predicate, input_iterator_tag), search(_ForwardIterator1,
	_ForwardIterator1, _ForwardIterator2, _ForwardIterator2,
	_BinaryPredicate), __search_n(_ForwardIterator, _ForwardIterator,
	_Integer, const _Tp&, _BinaryPredicate, std::forward_iterator_tag),
	__search_n(_RandomAccessIter, _RandomAccessIter, _Integer, const _Tp&,
	_BinaryPredicate, std::random_access_iterator_tag),
	search_n(_ForwardIterator, _ForwardIterator, _Integer, const _Tp&,
	_BinaryPredicate), remove_copy_if(_InputIterator, _InputIterator,
	_OutputIterator, _Predicate), __unique_copy(_ForwardIterator,
	_ForwardIterator, _OutputIterator, _BinaryPredicate,
	forward_iterator_tag, output_iterator_tag),
	__unique_copy(_InputIterator, _InputIterator, _OutputIterator,
	_BinaryPredicate, input_iterator_tag, output_iterator_tag),
	__unique_copy(_InputIterator, _InputIterator, _OutputIterator,
	_BinaryPredicate, input_iterator_tag, output_iterator_tag),
	__unique_copy(_InputIterator, _InputIterator, _ForwardIterator,
	_BinaryPredicate, input_iterator_tag, forward_iterator_tag),
	unique(_ForwardIterator, _ForwardIterator, _BinaryPredicate),
	__partition(_BidirectionalIterator, _BidirectionalIterator, _Predicate,
	bidirectional_iterator_tag), binary_search(_ForwardIterator,
	_ForwardIterator, const _Tp&, _Compare),
	next_permutation(_BidirectionalIterator, _BidirectionalIterator,
	_Compare), prev_permutation(_BidirectionalIterator,
	_BidirectionalIterator, _Compare)): Likewise.

From-SVN: r123800
2007-04-13 22:22:56 +00:00
Paolo Carlini
4ecacafc9b re PR libstdc++/31554 (stable_partition assumes iterator difference type is always ptrdiff_t)
2007-04-13  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31554
	* include/bits/stl_algo.h (stable_partition): Convert __buf.size()
	to _DistanceType.

From-SVN: r123783
2007-04-13 11:17:21 +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
90737ab777 locale_facets.tcc (num_get<>::do_get(iter_type, ios_base&, ios_base::iostate&, void*&)): Fix for sizeof(void*) > sizeof(unsigned long).
2007-04-11  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_get<>::do_get(iter_type,
	ios_base&, ios_base::iostate&, void*&)): Fix for sizeof(void*)
	> sizeof(unsigned long).

	* testsuite/22_locale/num_get/get/char/1.cc: Fix void* test.
	* testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise.

	* testsuite/22_locale/num_put/put/char/1.cc: Tweak comment.
	* testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise.

From-SVN: r123716
2007-04-11 15:19:15 +00:00
Benjamin Kosnik
113008b54b cc_hash_max_collision_check_resize_trigger_imp.hpp: Qualify namespace std members.
2007-04-10  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/pb_ds/detail/resize_policy/
	cc_hash_max_collision_check_resize_trigger_imp.hpp: Qualify
	namespace std members.	
	* include/ext/pb_ds/detail/list_update_policy/
	counter_lu_metadata.hpp: Same.
	* include/ext/throw_allocator.h: Same.
	* include/ext/pod_char_traits.h: Same.
	* include/ext/malloc_allocator.h: Same.
	* libsupc++/del_op.cc: Same, simplify.

	* include/bits/c++config: Adjust macro name.
	
	* include/c_global/cstring: Alphabetize.
	* include/c_global/cwctype: Same.

From-SVN: r123710
2007-04-11 01:11:56 +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
34989df3a9 valarray_array.h (__valarray_default_construct(_Tp*, _Tp*)): Use __is_scalar instead of __is_pod.
2007-04-04  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/valarray_array.h (__valarray_default_construct(_Tp*,
	_Tp*)): Use __is_scalar instead of __is_pod.

From-SVN: r123502
2007-04-04 19:06:46 +00:00
Paolo Carlini
ff2ea58742 stl_algobase.h (__copy_aux(_II, _II, _OI), [...]): Use __is_pod.
2007-04-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (__copy_aux(_II, _II, _OI),
	__copy_backward_aux(_BI1, _BI1, _BI2)): Use __is_pod.
	* include/bits/stl_deque.h (deque<>::_M_destroy_data(iterator,
	iterator, const std::allocator<>&)): Use __has_trivial_constructor.
	(deque<>::_M_destroy_data_dispatch): Remove.
	* include/bits/stl_uninitialized.h (uninitialized_copy(_InputIterator,
	_InputIterator, _ForwardIterator), uninitialized_fill(_ForwardIterator,
	_ForwardIterator, const _Tp&), uninitialized_fill_n(_ForwardIterator,
	_Size, const _Tp&)): Use __is_pod.
	* include/bits/stl_tempbuf.h (_Temporary_buffer::
	_Temporary_buffer(_ForwardIterator, _ForwardIterator)): Use __is_pod.
	(_Temporary_buffer::_M_initialize_buffer): Remove.
	* include/bits/stl_construct.h (_Destroy(_ForwardIterator,
	_ForwardIterator)): Use __has_trivial_destructor.
	(__destroy_aux): Remove.

From-SVN: r123480
2007-04-03 18:44:01 +00:00
Paolo Carlini
eb9af792f2 stl_map.h (map<>::insert(iterator, const value_type&): Uglify parameter.
2007-04-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_map.h (map<>::insert(iterator, const value_type&):
	Uglify parameter.

From-SVN: r123453
2007-04-03 08:50:09 +00:00
Paolo Carlini
f7e5257713 re PR libstdc++/31440 (libstdc++-g++-v3 discarded qualifiers)
2007-04-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31440
	* include/bits/stl_tree.h (_M_lower_bound(_Link_type, _Link_type,
	const _Key&), _M_upper_bound(_Link_type, _Link_type, const _Key&)):
	Add.
	(_M_equal_range(const _Key&) const): Remove.
	(lower_bound(const key_type&), lower_bound(const key_type&) const,
	upper_bound(const key_type&), upper_bound(const key_type&) const,
	equal_range(const key_type&), equal_range(const key_type&) const):
	Adjust.
	(find(const _Key&), find(const _Key&) const): Tweak.
	* testsuite/23_containers/map/operations/31440.cc: New.

From-SVN: r123452
2007-04-03 08:32:31 +00:00
Matthew Levine
be1088fa6a re PR libstdc++/31370 (resizing bugs in std::vector<bool>)
2007-04-02  Matthew Levine  <gcc@severeweblint.org>
	    Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31370
	* include/bits/stl_bvector.h (vector<bool>::max_size): Fix.
	(vector<bool>::_M_check_len): Add.
	* include/bits/vector.tcc (_M_fill_insert(iterator, size_type, bool),
	_M_insert_range(iterator, _ForwardIterator, _ForwardIterator,
	std::forward_iterator_tag), _M_insert_aux(iterator, bool)): Use it.
	* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: New.
	* testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust.

	* include/bits/stl_vector.h (vector<>::_M_check_len): Add.
	* include/bits/vector.tcc (_M_insert_aux(iterator, const _Tp&),
	_M_fill_insert(iterator, size_type, const value_type&),
	_M_range_insert(iterator, _ForwardIterator, _ForwardIterator,
	std::forward_iterator_tag)): Use it.

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

From-SVN: r123424
2007-04-02 10:15:50 +00:00
Paolo Carlini
5b3f6d1a46 locale_facets.tcc (num_put<>::do_put(iter_type, ios_base&, char_type, const void*)): Fix for sizeof(const void*) > sizeof(unsigned long).
2007-04-02  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_put<>::do_put(iter_type,
	ios_base&, char_type, const void*)): Fix for sizeof(const void*)
	> sizeof(unsigned long).

From-SVN: r123421
2007-04-02 09:49:31 +00:00
Paolo Carlini
232c492526 stl_bvector.h (_M_fill_insert(iterator, size_type, bool), [...]): Move out of line...
2007-03-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (_M_fill_insert(iterator, size_type,
	bool), _M_insert_range(iterator, _ForwardIterator, _ForwardIterator,
	std::forward_iterator_tag), _M_insert_aux(iterator, bool)): Move
	out of line...
	* include/bits/vector.tcc: ... here.

From-SVN: r123389
2007-03-31 19:48:41 +00:00
Paolo Carlini
cb68ec5005 re PR c++/26099 (support for type traits is not available)
gcc/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
	RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
	RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
	RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
	RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
	RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
	RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
	C++ extensions.
	* doc/extend.texi (Extensions to the C++ Language): Add Type Traits.

gcc/cp/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* cp-tree.h (enum cp_trait_kind, struct tree_trait_expr,
	TRAIT_EXPR_TYPE1, TRAIT_EXPR_TYPE2, TRAIT_EXPR_KIND): Add.
	(enum cp_tree_node_structure_enum, union lang_tree_node): Update.
	(CLASS_TYPE_NON_UNION_P): Add.
	(struct lang_type_class): Add has_complex_dflt.
	(TYPE_HAS_COMPLEX_DFLT, TYPE_HAS_TRIVIAL_DFLT): Add.
	(locate_copy, locate_ctor, locate_dtor, finish_trait_expr): Declare.
	* cp-tree.def: Add TRAIT_EXPR.
	* cp-objcp-common.c (cp_tree_size): Add TRAIT_EXPR case.
	* lex.c (struct resword): Add __has_nothrow_assign,
	__has_nothrow_constructor, __has_nothrow_copy, __has_trivial_assign,
	__has_trivial_constructor, __has_trivial_copy,
	__has_trivial_destructor, __has_virtual_destructor, __is_abstract,
	__is_base_of, __is_class, __is_convertible_to, __is_empty, __is_enum,
	__is_pod, __is_polymorphic, __is_union.
	* parser.c (cp_parser_primary_expression): Deal with the new RIDs.
	(cp_parser_trait_expr): New.
	* semantics.c (finish_trait_expr, trait_expr_value
	classtype_has_nothrow_copy_or_assign_p): New.
	* method.c (locate_copy, locate_ctor, locate_dtor): Do not define
	as static.
	* decl.c (cp_tree_node_structure): Add TRAIT_EXPR.
	* class.c (check_bases, check_field_decl, check_bases_and_members):
	Deal with TYPE_HAS_COMPLEX_DFLT (t) too.
	* pt.c (uses_template_parms, tsubst_copy_and_build,
	value_dependent_expression_p, type_dependent_expression_p): Deal with
	TRAIT_EXPR.
	* tree.c (cp_walk_subtrees): Deal with TRAIT_EXPR.

gcc/testsuite/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* g++.dg/ext/is_base_of.C: New.
	* g++.dg/ext/has_virtual_destructor.C: New.
	* g++.dg/ext/is_polymorphic.C: New.
	* g++.dg/ext/is_base_of_diagnostic.C: New.
	* g++.dg/ext/is_enum.C: New.
	* g++.dg/ext/has_nothrow_assign.C: New.
	* g++.dg/ext/has_nothrow_constructor.C: New.
	* g++.dg/ext/is_empty.C: New.
	* g++.dg/ext/has_trivial_copy.C: New.
	* g++.dg/ext/has_trivial_assign.C: New.
	* g++.dg/ext/is_abstract.C: New.
	* g++.dg/ext/is_pod.C: New.
	* g++.dg/ext/has_nothrow_copy.C: New.
	* g++.dg/ext/is_class.C: New.
	* g++.dg/ext/has_trivial_constructor.C: New.
	* g++.dg/ext/is_union.C: New.
	* g++.dg/ext/has_trivial_destructor.C: New.
	* g++.dg/tree-ssa/pr22444.C: Adjust, avoid __is_pod.
	* g++.dg/template/crash43.C: Likewise.

libstdc++-v3/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* include/bits/cpp_type_traits.h (struct __is_pod, struct __is_empty):
	Remove.
	* include/bits/valarray_array.h: Adjust.
	* include/bits/allocator.h: Likewise.
	* include/bits/stl_tree.h: Likewise.

From-SVN: r123366
2007-03-30 19:45:57 +00:00
Paolo Carlini
1c917b030e re PR libstdc++/31401 (string find behaves strange when searching from npos)
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31401
	* include/bits/basic_string.tcc (find(const _CharT*, size_type,
	size_type)): Avoid unsigned overflow.
	* testsuite/21_strings/basic_string/find/char/4.cc: New.
	* testsuite/21_strings/basic_string/find/wchar_t/4.cc: Likewise.

From-SVN: r123361
2007-03-30 17:10:50 +00:00
Paolo Carlini
7558d8101e fstream.tcc (basic_filebuf<>::underflow): Don't call codecvt::in at all if _M_ext_next >= _M_ext_end.
2007-03-27  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/fstream.tcc (basic_filebuf<>::underflow):
	Don't call codecvt::in at all if _M_ext_next >= _M_ext_end.
	* testsuite/27_io/basic_filebuf/underflow/char/3.cc: New.

From-SVN: r123260
2007-03-27 15:51:41 +00:00
Paolo Carlini
91b0b94a04 stl_algo.h (swap_ranges): Move...
2007-03-12  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (swap_ranges): Move...
	* include/bits/stl_algobase.h: ... here.
	* include/tr1/array: Trim includes, stl_algobase.h is enough.

From-SVN: r122840
2007-03-12 13:59:50 +00:00
Paolo Carlini
bd91a8c4ed PR libstdc++/28080 (final)
2007-03-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (final)
	* include/std/iosfwd: Do not include <bits/c++io.h>.
	* config/io/basic_file_stdio.h: Do it here.
	* include/ext/stdio_sync_filebuf.h: Likewise.
	* include/ext/rope: Include <bits/gthr.h> unconditionally.
	* include/std/fstream: Do not include <bits/gthr.h>.
	
	* include/std/ios: Do not include <cstdio>.
	* include/bits/ios_base.h: Do it here.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.

From-SVN: r122818
2007-03-11 12:03:34 +00:00
Paolo Carlini
b2c50382fb PR libstdc++/28080 (partial)
2007-03-10  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/std/memory: Move C++03 implementation...
	* include/bits/stl_memory.h: ... here, new.
	* include/Makefile.am: Add.
	* include/bits/stl_tempbuf.h: Include the latter instead.
	* include/tr1/hashtable: Include allocator.h instead of
	the whole <memory>.
	* include/tr1/hashtable_policy.h: Include stl_function.h
	instead of <functional>.
	* include/Makefile.in: Regenerate.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust dg-error
	line numbers.

From-SVN: r122805
2007-03-10 20:29:45 +00:00
Paolo Carlini
4ba851b58b PR libstdc++/28080 (partial)
2007-03-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/bits/stl_algobase.h: Do not include <cstdlib>.
	* src/localename.cc: Do it here.
	* src/ctype.cc: Likewise.
	* include/ext/pb_ds/detail/map_debug_base.hpp: Likewise.
	* include/ext/pb_ds/exception.hpp: Likewise.
	* include/ext/pb_ds/list_update_policy.hpp: Likewise.
	* include/bits/stl_algo.h: Likewise.
	* include/tr1/random: Likewise.
	* testsuite/util/testsuite_hooks.cc: Likewise.
	* testsuite/util/testsuite_abi_check.cc: Likewise.
	* testsuite/util/testsuite_abi.cc: Likewise.
	* testsuite/util/performance/assoc/timing/
	tree_order_statistics_test.hpp: Likewise.
	* config/locale/darwin/ctype_members.cc: Likewise.
	* config/locale/gnu/c++locale_internal.h: Likewise.
	* config/locale/generic/ctype_members.cc: Likewise.
	* config/locale/generic/time_members.cc: Likewise.

	* include/ext/pb_ds/detail/resize_policy/
	hash_load_check_resize_trigger_imp.hpp: Qualify abort.
	* testsuite/util/performance/assoc/timing/
	multimap_find_test.hpp: Likewise.
	* include/std/valarray: Do include <cstdlib>.
	* include/tr1/hashtable: Likewise.

From-SVN: r122628
2007-03-06 17:43:27 +00:00
Benjamin Kosnik
af13a7a6ec acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Add c_global.
2007-03-04  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCXX_ENABLE_CHEADERS): Add c_global.
	* configure.host (c_model): Set default to c_global.
	* configure: Regenerate.
	* include/Makefile.am (c_compatibility_headers_extra): Make
	conditional on GLIBCXX_C_HEADERS_COMPATIBILITY.
	(c_base_headers_extra): Make conditional on GLIBCXX_C_HEADERS_EXTRA.
	(c_compatibility_headers): Make conditional on c/c_std/c_global.
	* include/Makefile.in: Regenerate.
	* docs/html/configopts.html: Add c_global information to
	--enable-cheaders. Eventually, "c_std" should mean "C" includes
	that are in namespace std, with optional C++ "C" compatibility
	includes to inject into global scope. And "c_global" should mean
	"C" includes that are in the global namespace, with C++ includes
	injecting into namespace std and no C++ "C" compatibility
	includes.
 
2007-03-04  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config: Add _GLIBCXX_NAMEPACE_C.
	Add _GLIBCXX_NAMESPACE_ASSOCIATION_CXX200x.
	Add _GLIBCXX_TR1 as namespace macro.
	Add namespace associations for std::__cxx200x conditionally.

	* include/c_compatibility/assert.h: Correct doxygen markup,
	conditionalize the global injections on _GLIBCXX_NAMESPACE_C.
	* include/c_compatibility/ctype.h: Same.
	* include/c_compatibility/errno.h: Same.
	* include/c_compatibility/float.h: Same.
	* include/c_compatibility/iso646.h: Same.
	* include/c_compatibility/limits.h: Same.
	* include/c_compatibility/locale.h: Same.
	* include/c_compatibility/math.h: Same.
	* include/c_compatibility/setjmp.h: Same.
	* include/c_compatibility/signal.h: Same.
	* include/c_compatibility/stdarg.h: Same.
	* include/c_compatibility/stddef.h: Same.
	* include/c_compatibility/stdio.h: Same.
	* include/c_compatibility/stdlib.h: Same.
	* include/c_compatibility/string.h: Same.
	* include/c_compatibility/time.h: Same.
	* include/c_compatibility/wchar.h: Same.
	* include/c_compatibility/wctype.h: Same.

	* include/c_compatibility/complex.h: Add.
	* include/c_compatibility/fenv.h: Same.
	* include/c_compatibility/inttypes.h: Same.
	* include/c_compatibility/stdbool.h: Same.
	* include/c_compatibility/stdint.h: Same.
	* include/c_compatibility/tgmath.h: Same.

	* include/c_global/cassert: Add, use include_next, use C++0x features
	if -std=c++0x.
	* include/c_global/cctype: Same.
	* include/c_global/cerrno: Same.
	* include/c_global/cfloat: Same.
	* include/c_global/ciso646: Same.
	* include/c_global/climits: Same.
	* include/c_global/clocale: Same.
	* include/c_global/cmath: Same.
	* include/c_global/cmath.tcc: Same.
	* include/c_global/csetjmp: Same.
	* include/c_global/csignal: Same.
	* include/c_global/cstdarg: Same.
	* include/c_global/cstddef: Same.
	* include/c_global/cstdio: Same.
	* include/c_global/cstdlib: Same.
	* include/c_global/cstring: Same.
	* include/c_global/ctime: Same.
	* include/c_global/cwchar: Same.
	* include/c_global/cwctype: Same.

	* include/c_global/ccomplex: Add.
	* include/c_global/cfenv: Add.
	* include/c_global/cinttypes: Add. 
	* include/c_global/cstdbool: Add.
	* include/c_global/cstdint: Add.
	* include/c_global/ctgmath: Add.

	* include/std/algorithm: Use C++0x features if -std=c++0x.	
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/deque: Same.
	* include/std/fstream: Same.
	* include/std/functional: Same.
	* include/std/iomanip: Same.
	* include/std/ios: Same.
	* include/std/iosfwd: Same.
	* include/std/iostream: Same.
	* include/std/istream: Same.
	* include/std/iterator: Same.
	* include/std/limits: Same.
	* include/std/list: Same.
	* include/std/locale: Same.
	* include/std/map: Same.
	* include/std/memory: Same.
	* include/std/numeric: Same.
	* include/std/ostream: Same.
	* include/std/queue: Same.
	* include/std/set: Same.
	* include/std/sstream: Same.
	* include/std/stack: Same.
	* include/std/stdexcept: Same.
	* include/std/streambuf: Same.
	* include/std/string: Same.
	* include/std/utility: Same.
	* include/std/valarray: Same.
	* include/std/vector: Same.

	* include/std/array: Add.
	* include/std/random: Add.
	* include/std/regex: Add.
	* include/std/tuple: Add.
	* include/std/type_traits: Add.
	* include/std/unordered_map: Add.
	* include/std/unordered_set: Add.
	* include/std/c++0x_warning.h: Add.
	
	* include/tr1/array: Switch namespaces based on _GLIBCXX_TR1.
	* include/tr1/boost_shared_ptr.h: Same.
	* include/tr1/cctype: Same.
	* include/tr1/cfenv: Same.
	* include/tr1/cinttypes: Same.
	* include/tr1/cmath: Same.
	* include/tr1/common.h: Same.
	* include/tr1/complex: Same.
	* include/tr1/cstdint: Same.
	* include/tr1/cstdio: Same.
	* include/tr1/cstdlib: Same.
	* include/tr1/cwchar: Same.
	* include/tr1/cwctype: Same.
	* include/tr1/functional: Same.
	* include/tr1/functional_hash.h: Same.
	* include/tr1/functional_iterate.h: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/hashtable_policy.h: Same.
	* include/tr1/math.h: Same.
	* include/tr1/memory: Same.
	* include/tr1/random: Same.
	* include/tr1/random.tcc: Same.
	* include/tr1/ref_fwd.h: Same.
	* include/tr1/repeat.h: Same.
	* include/tr1/stdlib.h: Same.
	* include/tr1/tuple: Same.
	* include/tr1/tuple_iterate.h: Same.
	* include/tr1/type_traits: Same.
	* include/tr1/type_traits_fwd.h: Same.
	* include/tr1/unordered_map: Same.
	* include/tr1/unordered_set: Same.
	* include/tr1/utility: Same.

	* include/tr1/ccomplex: Add.
	* include/tr1/complex.h: Add.
	* include/tr1/regex: Add.

	* include/Makefile.am: Add C++0x headers, "C" compatibility headers.
	* include/Makefile.in: Regenerate.

	* testsuite/tr1/headers.cc: Add in regex/complex.

	* testsuite/17_intro/headers/c++200x/all.cc: New.
	* testsuite/17_intro/headers/c++200x/all_multiple_inclusion.cc: Same.
	* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Same.
	* testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc: Same.
	* testsuite/18_support/headers/cstdint/std_c++0x_neg.cc: Same.
	* testsuite/18_support/headers/cstdint/types_std_c++0x.cc: Same.
	* testsuite/20_util/enable_shared_from_this/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/20_util/headers/functional/types_std_c++0x.cc: Same.
	* testsuite/20_util/headers/functional/
	using_namespace_std_placeholders.cc: Same.
	* testsuite/20_util/headers/memory/types_std_c++0x.cc: Same.
	* testsuite/20_util/headers/type_traits/std_c++0x_neg.cc: Same.
	* testsuite/20_util/headers/type_traits/types_std_c++0x.cc: Same.
	* testsuite/20_util/shared_ptr/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/20_util/weak_ptr/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/hash/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/headers/array/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/headers/tuple/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/headers/tuple/types_std_c++0x.cc: Same.
	* testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc: Same.
	* testsuite/23_containers/tuple/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation.cc: Same.
	* testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc: Same.
	* testsuite/26_numerics/headers/cmath/types_std_c++0x.cc: Same.
	* testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Same.
	* testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/random/std_c++0x_neg.cc: Same.
	* testsuite/26_numerics/headers/random/types_std_c++0x.cc: Same.
	* testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc: Same.
	* testsuite/27_io/headers/cinttypes/types_std_c++0x.cc: Same.
	* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Same.

	* testsuite/tr1/8_c_compatibility/cfenv/types.cc: Rename ...
	* testsuite/tr1/8_c_compatibility/cinttypes/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cmath/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdint/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdlib/types.cc: Same.
	* testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc: ...to this.
	* testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc: Same.
	* testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc: Same.
	* testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Same.

From-SVN: r122533
2007-03-04 22:59:49 +00:00
Paolo Carlini
f12409e6ec re PR libstdc++/31031 (ostream ambiguous operator&&)
2007-03-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31031
	* include/bits/istream.tcc: Inhibit implicit instantiation of
	the _M_insert helpers.
	* include/bits/ostream.tcc: Likewise for _M_extract.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/
	31031.cc: New.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/
	31031.cc: Likewise.

From-SVN: r122513
2007-03-03 19:36:20 +00:00
Paolo Carlini
39b8cd70c2 PR libstdc++/28080 (partial)
2007-03-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/bits/stl_algobase.h: Do not include <iosfwd>,
	<bits/functexcept.h> is enough; adjust __copy_aux declarations;
	remove declaration of copy overload for istreambuf_iterator /
	ostreambuf_iterator.
	* src/debug.cc: Include <cstdio>.
	* include/ext/rope: Include <iosfwd>.
	* include/bits/char_traits.h: Include <cstdio> and <cwchar>.
	* include/bits/stl_algo.h: Remove declaration of find overload
	for istreambuf_iterator.
	* include/std/queue: Clean up includes.
	* include/std/stack: Likewise.
	* include/std/memory: Likewise.
	* include/std/algorithm: Likewise.
	* include/std/vector: Likewise.
	* include/std/deque: Likewise.
	* include/std/list: Likewise.
	* include/bits/stl_tree.h: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust
	dg-error markers.
	* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
	* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
	* testsuite/23_containers/map/operators/1_neg.cc: Likewise.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.

	* include/ext/type_traits.h: Fix type of __max_digits10; clean up
	includes.

	* testsuite/util/testsuite_hooks.h: Do not include <cstddef>.
	* testsuite/util/testsuite_hooks.cc: Do it here.

From-SVN: r122502
2007-03-03 10:29:14 +00:00
Paolo Carlini
96e7e5ad47 re PR libstdc++/31005 (build failure on powerpc-darwin while building codecvt.cc)
2007-03-01  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/31005
	* include/bits/localefwd.h: Include <cctype>.

From-SVN: r122424
2007-03-01 09:03:30 +00:00
Paolo Carlini
f4e39278b3 PR libstdc++/28080 (partial)
2007-02-27  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/std/bitset: Do not include <ios>, <iosfwd> is enough.
	(operator>>(std::basic_istream<>&, bitset<>&)): Tweak, refer to
	ios_base as a base of basic_istream.
	* include/std/iomanip: Do not include <ios>, <iosfwd> + 
	<bits/ios_base.h> is enough.
	* include/std/iosfwd: Do not include <cctype> here...
	* include/bits/locale_facets.h: ... do it here, when needed.
	* include/bits/ostream.tcc: Clean up, do not include <locale> here...
	* include/std/ostream: ... here instead.
	* include/bits/istream.tcc: Likewise for <locale> and <ostream>...
	* include/std/istream: ... here.
	* include/bits/sstream.tcc: Do not include <sstream>.

From-SVN: r122380
2007-02-27 17:48:09 +00:00
Paolo Carlini
681a691966 PR libstdc++/28080 (partial)
2007-02-26  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/std/bitset: Do not include <istream> and <ostream>,
	<ios> is enough.
	* include/std/iomanip: Do not include the whole <istream>,
	<ios> is enough; do not include <functional>; reformat.
	* include/std/functional: Do not include <cstddef>.
	* include/std/list: Do not include <bits/stl_uninitialized.h>.
	* include/std/numeric: Do not include the whole <iterator> and
	<bits/stl_function.h>.
	* include/std/valarray: Do not include <numeric>.
	* include/bits/stl_numeric.h: Include <bits/concept_check.h>.
	* src/iostream-inst.cc: Include <istream>.
	* include/ext/functional: Include <cstddef>.
	* testsuite/util/testsuite_hooks.h: Do not include <locale>,
	<ctime> is enough; qualify tm.
	* testsuite/util/testsuite_hooks.cc: Qualify tm.

2007-02-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (class ctype_byname<char>,
	class ctype_byname<wchar_t>): Declare.
	* src/ctype.cc (ctype_byname<wchar_t>::ctype_byname(const char*,
	size_t), ctype_byname<wchar_t>::~ctype_byname): Define.
	* config/locale/generic/ctype_members.cc (ctype_byname<char>::
	ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
	Likewise.
	* config/locale/gnu/ctype_members.cc (ctype_byname<char>::
	ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
	Likewise.
	* config/locale/darwin/ctype_members.cc (ctype_byname<char>::
	ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
	Likewise.
	* testsuite/22_locale/headers/locale/synopsis.cc: Remove xfail.

From-SVN: r122329
2007-02-26 09:36:39 +00:00
Paolo Carlini
f56fe8ff92 PR libstdc++/28080 (partial)
2007-02-18  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/bits/stl_algobase.h: Do not include <climits>, use
	std::numeric_limits.
	* include/bits/stl_bvector.h: Use __CHAR_BIT__.
	* config/locale/gnu/codecvt_members.cc: Include <climits>.
	* config/locale/generic/codecvt_members.cc: Likewise.
	* include/std/string: Do not include <algorithm>; do not include
	<memory>, include <bits/allocator.h> instead.
	* include/ext/vstring_fwd.h: Likewise.
	* include/ext/vstring_util.h: Do not include <algorithm>.
	* include/tr1/hashtable_policy.h: Include <algorithm>.
	* testsuite/21_strings/basic_string/replace/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string/replace/wchar_t/1.cc: Likewise.
	* testsuite/23_containers/bitset/cons/1.cc: Likewise.
	* testsuite/util/testsuite_character.h: Likewise.

	* config/locale/gnu/codecvt_members.cc: Also include <cstdlib>,
	for MB_CUR_MAX.
	* config/locale/generic/codecvt_members.cc: Likewise.

From-SVN: r122089
2007-02-18 11:32:44 +00:00
Dirk Mueller
9e0b7527be locale_facets.tcc (num_get<>::do_get): Avoid warning about ambiguous else.
2007-02-13  Dirk Mueller  <dmueller@suse.de>

       * include/bits/locale_facets.tcc (num_get<>::do_get): Avoid
       warning about ambiguous else.

From-SVN: r121881
2007-02-13 10:13:04 +00:00
Paolo Carlini
bad333ffe3 re PR libstdc++/21172 (potential integer overflow error in STL heap functions)
2007-02-12  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/21172
	* include/bits/stl_heap.h (__adjust_heap(_RandomAccessIterator,
	_Distance, _Distance, _Tp), __adjust_heap(_RandomAccessIterator,
	_Distance, _Distance, _Tp, _Compare)): Avoid potential integer
	overflow.

	* include/bits/stl_heap.h (__is_heap(_RandomAccessIterator,
	_RandomAccessIterator), __is_heap(_RandomAccessIterator,
	_RandomAccessIterator, _StrictWeakOrdering): Mark inline.
	(make_heap(_RandomAccessIterator, _RandomAccessIterator,
	_Compare)): Do not mark inline.

	* include/bits/stl_heap.h (push_heap(_RandomAccessIterator,
	_RandomAccessIterator), sort_heap(_RandomAccessIterator,
	_RandomAccessIterator)): Uncomment __glibcxx_requires_heap.

From-SVN: r121875
2007-02-13 00:25:30 +00:00
Howard Hinnant
687e00ee8a re PR libstdc++/17012 ([DR 526] std::list's function, remove, looks like it is reading memory that has been freed.)
2007-02-08  Howard Hinnant  <hhinnant@apple.com>

	PR libstdc++/17012
	* include/bits/list.tcc (list<>::remove): Take care of
	&*__first == &__value.
	* docs/html/ext/howto.html: Add an entry for DR 526.

From-SVN: r121735
2007-02-09 01:00:25 +00:00
Paolo Carlini
1444936f04 stl_deque.h (operator<): Qualify call.
2007-02-05  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_deque.h (operator<): Qualify call.

From-SVN: r121597
2007-02-05 12:58:12 +00:00
Benjamin Kosnik
311635d103 c++config: Consistent macro guards for config includes.
2007-02-02  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/c++config: Consistent macro guards for config includes.
	* config/locale/gnu/c_locale.h: Same.
	* config/locale/generic/c_locale.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/vxworks/os_defines.h: Same.
	* config/cpu/sh/atomicity.h: Same.
	* config/io/c_io_stdio.h: Same.
	* config/io/basic_file_stdio.h: Same.

From-SVN: r121502
2007-02-02 14:49:52 +00:00
Paolo Carlini
263e3c330e stl_uninitialized.h (uninitialized_copy(const char*, const char*, char*), [...]): Remove, just forward to std::copy.
2007-01-29  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_uninitialized.h (uninitialized_copy(const char*,
	const char*, char*), uninitialized_copy(const wchar_t*, const wchar_t*,
	wchar_t*)): Remove, just forward to std::copy.

From-SVN: r121300
2007-01-29 18:34:46 +00:00
Benjamin Kosnik
4ffe6e87dc enc_filebuf.h: Resurrect, update.
2007-01-29  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/enc_filebuf.h: Resurrect, update.
	* include/ext/codecvt_specializations.h: Remove
        _GLIBCXX_USE_ICONV, _GLIBCXX_USE_ENCODING_STATE.
	* include/bits/localefwd.h: Remove declaration for __enc_traits.
	* docs/html/22_locale/codecvt.html: Change __enc_traits to
	encoding_state.
	* scripts/testsuite_flags.in: Remove ICONV.

	* configure.ac: Remove GLIBCXX_CHECK_ICONV_SUPPORT.
	* acinclude.m4 (GLIBCXX_CHECK_ICONV_SUPPORT): Remove.
	* crossconfig.m4: Remove use of GLIBCXX_CHECK_ICONV_SUPPORT.
	* config.h.in: Remove HAVE_ICONV_CLOSE, HAVE_ICONV_OPEN,
	HAVE_NL_LANGINFO, _GLIBCXX_USE_ICONV.
	* include/Makefile.am: Uglify ICONV_CONST.
	* configure: Regenerate.
	* aclocal.m4: 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.

	* testsuite/ext/enc_filebuf/wchar_t/13189.cc: Use
	dg-require-iconv, fix up for encoding_state changes.
	* testsuite/ext/enc_filebuf/char/13189.cc: Same.
	* testsuite/ext/enc_filebuf/char/13598.cc: Same.
	* testsuite/22_locale/codecvt/unicode: Move...
	* testsuite/22_locale/codecvt/unicode/char.cc: Move...
	* testsuite/22_locale/codecvt/unicode/1.cc: Move...
	* testsuite/22_locale/codecvt/unicode/wchar_t.cc: Move...
	* testsuite/ext/codecvt: New.
	* testsuite/ext/codecvt/char-1.cc: ...here. Also, use dg-require-iconv.
	* testsuite/ext/codecvt/char-2.cc: ...here. Same.
	* testsuite/ext/codecvt/1.cc: ...here. Same.
	* testsuite/ext/codecvt/wchar_t.cc: ...here. Same.
	* testsuite/22_locale/locale/cons/unicode: Delete directory.
	* testsuite/22_locale/locale/cons/unicode/1.cc: Move...
	* testsuite/22_locale/locale/cons/unicode.cc: ...here.

From-SVN: r121297
2007-01-29 18:22:37 +00:00
Paolo Carlini
226a2e08e5 locale_facets.tcc (num_get<>::do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&), [...]): -Wconversion and -Woverflow fixes.
2007-01-28  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_get<>::do_get(iter_type,
	iter_type, ios_base&, ios_base::iostate&, bool&),
	num_put<>::_M_insert_int(_OutIter, ios_base&, _CharT, _ValueT)):
	-Wconversion and -Woverflow fixes.
	* include/bits/istream.tcc (operator>>(int&), operator>>(short&)):
	Likewise.
	* include/std/valarray (valarray<>::shift, cshift): Likewise.

From-SVN: r121264
2007-01-28 18:40:42 +00:00
Nathan Myers
6bfcbf0d48 streambuf_iterator.h (istreambuf_iterator<>::equal): Simplify.
2007-01-25  Nathan Myers  <ncm@cantrip.org>

	* include/bits/streambuf_iterator.h (istreambuf_iterator<>::equal):
	Simplify.

From-SVN: r121170
2007-01-25 13:08:51 +00:00
Steve LoBasso
45dc23a66b deque.tcc (deque<>::erase(iterator, iterator)): Fix condition.
2007-01-24   Steve LoBasso <slobasso@yahoo.com>
	     Paolo Carlini  <pcarlini@suse.de>

	* include/bits/deque.tcc (deque<>::erase(iterator, iterator)):
	Fix condition.
	* testsuite/23_containers/deque/modifiers/erase/3.cc: New.

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

From-SVN: r121147
2007-01-24 23:52:37 +00:00
Paolo Carlini
aa5ccd9980 stl_algobase.h (__fill_aux(unsigned char*, unsigned char*, const unsigned char&), [...]): Take the character by value.
2007-01-22  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (__fill_aux(unsigned char*,
	unsigned char*, const unsigned char&), __fill_aux(signed char*,
	signed char*, const signed char&), __fill_aux(char*, char*,
	const char&), __fill_aux(wchar_t*, wchar_t*, const wchar_t&)):
	Take the character by value.
	(__fill_n_aux): Likewise.

From-SVN: r121056
2007-01-22 15:19:40 +00:00
Paolo Carlini
e9e90c1f98 PR libstdc++/30449 (fill, fill_n)
2007-01-21  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/30449 (fill, fill_n)
	* include/bits/stl_algobase.h (__fill_aux(wchar_t*, wchar_t*,
	const wchar_t&), __fill_n_aux(wchar_t*, _Size, const wchar_t&)): New.
	(fill(signed char*, signed char*, const signed char&),
	fill(unsigned char*, unsigned char*, const unsigned char&),
	fill(char*, char*, char&), fill_n(signed char*, _Size,
	const signed char&), fill_n(unsigned char*, _Size,
	const unsigned char&), fill_n(char*, _Size, char&)): Rename to
	__*_aux.
	(__fill_normal, __fill_n_normal): New, call the latter.
	(fill, fill_n): Adjust, call the latter.	
	* testsuite/25_algorithms/fill/4.cc: New.
	* testsuite/25_algorithms/fill/5.cc: New.

From-SVN: r121027
2007-01-21 09:57:42 +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
Paolo Carlini
30beae0c6e stl_algobase.h (fill_n(char*, _Size, const signed char&)): Fix signature.
2007-01-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (fill_n(char*, _Size,
	const signed char&)): Fix signature.
	* testsuite/25_algorithms/fill/3.cc: New.

From-SVN: r120778
2007-01-14 18:29:58 +00:00
Ian Lance Taylor
2a67bec24f re PR c++/19564 (-Wparentheses does not work with the C++ front-end)
PR c++/19564
	PR c++/19756
gcc/:
	* c-typeck.c (parser_build_binary_op): Move parentheses warnings
	to warn_about_parentheses in c-common.c.
	* c-common.c (warn_about_parentheses): New function.
	* c-common.h (warn_about_parentheses): Declare.
	* doc/invoke.texi (Warning Options): Update -Wparentheses
	description.
gcc/cp/:
	* parser.c (cp_parser_expression_stack_entry): Add field
	lhs_type.
	(cp_parser_binary_expression): Track tree code of left hand side
	of expression.  Use it when calling build_x_binary_op.
	(cp_parser_selection_statement): Add if_p parameter.  Change all
	callers.  Warn about ambiguous else.
	(cp_parser_statement): Add if_p parameter.  Change all callers.
	(cp_parser_implicitly_scoped_statement): Likewise.
	* typeck.c (build_x_binary_op): Add parameters arg1_code and
	arg2_code.  Change all callers.  Call warn_about_parentheses.
	* cp-tree.h (build_x_binary_op): Update declaration.
gcc/testsuite/:
	* g++.dg/warn/Wparentheses-5.C: New test.
	* g++.dg/warn/Wparentheses-6.C: New test.
	* g++.dg/warn/Wparentheses-7.C: New test.
	* g++.dg/warn/Wparentheses-8.C: New test.
	* g++.dg/warn/Wparentheses-9.C: New test.
	* g++.dg/warn/Wparentheses-10.C: New test.
	* g++.dg/warn/Wparentheses-11.C: New test.
	* g++.dg/warn/Wparentheses-12.C: New test.
	* g++.dg/warn/Wparentheses-13.C: New test.
	* g++.dg/warn/Wparentheses-14.C: New test.
	* g++.dg/warn/Wparentheses-15.C: New test.
	* g++.dg/warn/Wparentheses-16.C: New test.
	* g++.dg/warn/Wparentheses-17.C: New test.
	* g++.dg/warn/Wparentheses-18.C: New test.
	* g++.dg/warn/Wparentheses-19.C: New test.
	* g++.dg/warn/Wparentheses-20.C: New test.
	* g++.dg/warn/Wparentheses-21.C: New test.
libstdc++-v3/:
	* include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
	Add parentheses around && within || to avoid warning.
	(num_get<>::_M_extract_int): Likewise.
	(money_get<>::_M_extract): Likewise.
	(num_get<>::do_get(iter_type, iter_type, ios_base&,
	ios_base::iostate&, void*&)): Add parentheses around & within | to
	avoid warning.
	(num_put<>::do_put(iter_type, ios_base&, char_type, const void*)):
	Likewise.
	* include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
	Add parentheses around && within || to avoid warning.
	* libsupc++/tinfo.cc (__do_dyncast): Likewise.
	* src/locale.cc (locale::_S_normalize_category): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>::_M_insert_unique): Add
	braces to avoid ambiguous else warning.
	* src/strstream.cc (strstreambuf::_M_free): Likewise.
	* src/tree.cc (_Rb_tree_rebalance_for_erase): Likewise.

From-SVN: r119855
2006-12-14 05:49:06 +00:00
Richard Guenther
c3f824ce13 traits.hpp: Qualify types.
2006-12-11  Richard Guenther  <rguenther@suse.de>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/ext/pb_ds/detail/pat_trie_/traits.hpp: Qualify types.
	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Likewise.
	* include/ext/rope: Likewise.
	* include/bits/stl_tree.h (struct _Rb_tree): Change the _Link_type
	typedefs to use _Rb_tree_node<_Val> directly.
	(_M_get_node, _M_put_node): Use _Link_type.

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

From-SVN: r119732
2006-12-11 10:48:56 +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
4091894c31 DR 543, [Ready].
2006-12-05  Paolo Carlini  <pcarlini@suse.de>

	DR 543, [Ready].
	* include/bits/slice_array.h (slice::slice()): Implement the
	resolution.
	* include/bits/gslice.h (gslice::_Indexer::_Indexer()): Add.
	(gslice::gslice()): Use it.
	* testsuite/26_numerics/valarray/dr543.cc: New.
	* docs/html/ext/howto.html: Add an entry for DR 543.

From-SVN: r119552
2006-12-05 19:25:48 +00:00
Paolo Carlini
fe264e58e1 PR libstdc++/29989 (again)
2006-12-04  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29989 (again)
	* include/bits/c++config: #undef min and max.
	* testsuite/18_support/numeric_limits/29989.cc: New.

From-SVN: r119510
2006-12-04 21:11:52 +00:00
Paolo Carlini
6bd70157d7 re PR libstdc++/29989 (missed #undef min/max in <limits>)
2006-12-03  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29989
	* include/bits/stl_algobase.h: Remove min and max #undefs.

From-SVN: r119467
2006-12-03 17:15:46 +00:00
Benjamin Kosnik
78a5388739 throw_allocator.h: Consistent @file markup.
2006-11-29  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/throw_allocator.h: Consistent @file markup.
	* include/ext/type_traits.h: Same.
	* include/debug/hash_map: Same.
	* include/debug/hash_multimap.h: Same.
	* include/debug/set.h: Same.
	* include/debug/hash_set.h: Same.
	* include/debug/formatter.h: Same.
	* include/debug/bitset: Same.
	* include/debug/set: Same.
	* include/debug/multiset.h: Same.
	* include/debug/safe_sequence.h: Same.
	* include/debug/hash_set: Same.
	* include/debug/functions.h: Same.
	* include/debug/safe_base.h: Same.
	* include/debug/hash_multiset.h: Same.
	* include/debug/safe_iterator.tcc: Same.
	* include/debug/vector: Same.
	* include/debug/map.h: Same.
	* include/debug/deque: Same.
	* include/debug/hash_map.h: Same.
	* include/debug/string: Same.
	* include/debug/macros.h: Same.
	* include/debug/list: Same.
	* include/debug/debug.h: Same.
	* include/debug/map: Same. 
	* include/debug/safe_iterator.h: Same.
	* include/debug/multimap.h: Same.
	* config/cpu/generic/atomicity_mutex/atomicity.h: Same.
	* config/cpu/generic/atomicity_builtins/atomicity.h: Same.
	* config/cpu/generic/atomic_word.h: Same.
	* include/tr1/memory: Same.
	* include/tr1/random: Same.	
	* include/std/std_queue.h: Same.
	* include/std/std_iterator.h: Same.
	* include/std/std_bitset.h: Same.
	* include/std/std_set.h: Same.
	* include/std/std_vector.h: Same.
	* include/std/std_deque.h: Same.
	* include/std/std_utility.h: Same.
	* include/std/std_stack.h: Same.
	* include/std/std_string.h: Same.
	* include/std/std_list.h: Same.
	* include/std/std_map.h: Same.
	* libsupc++/typeinfo: Same.
	* libsupc++/exception: Same.
	* libsupc++/exception_defines.h: Same.
	* libsupc++/new: Same.
	
	* include/ext/bitmap_allocator.h: Change namespace __balloc to
	__detail.
	* src/bitmap_allocator.cc: Same.
	
	* include/bits/cpp_type_traits.h: Change __true_type and
	__false_type from global to namespace std scope.
	* include/ext/slist: Same.
	* include/ext/vstring.h: Same.
	* include/ext/vstring.tcc: Same.
	* include/ext/rc_string_base.h: Same.
	* include/ext/sso_string_base.h: Same.

	* include/bits/codecvt.h: Adjust markup so that correct namespace
	scope information is in all files.
	* include/bits/locale_facets.h: Same. Include ctype_base directly.
	* config/os/windiss/ctype_base.h: Add in namespace markup.
	* config/os/newlib/ctype_base.h: Same.
	* config/os/aix/ctype_base.h: Same.
	* config/os/vxworks/ctype_base.h: Same.
	* config/os/hpux/ctype_base.h: Same.
	* config/os/mingw32/ctype_base.h: Same.
	* config/os/gnu-linux/ctype_base.h: Same.
	* config/os/tpf/ctype_base.h: Same.
	* config/os/uclibc/ctype_base.h: Same.
	* config/os/djgpp/ctype_base.h: Same.
	* config/os/qnx/qnx6.1/ctype_base.h: Same.
	* config/os/bsd/netbsd/ctype_base.h: Same.
	* config/os/bsd/darwin/ctype_base.h: Same.
	* config/os/bsd/freebsd/ctype_base.h: Same.
	* config/os/irix/irix5.2/ctype_base.h: Same.
	* config/os/irix/irix6.5/ctype_base.h: Same.
	* config/os/solaris/solaris2.5/ctype_base.h: Same.
	* config/os/solaris/solaris2.6/ctype_base.h: Same.
	* config/os/solaris/solaris2.7/ctype_base.h: Same.
	* config/os/generic/ctype_base.h: Same.
	* include/tr1/mu_iterate.h: Same.
	* include/tr1/tuple: Same.
	* include/tr1/tuple_iterate.h: Same.
	* include/tr1/tuple_defs.h: Same.
	* include/tr1/random.tcc: Same.
	* include/tr1/functional: Same.
	* include/tr1/functional_iterate.h: Same.
	
	* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Line
	number changes.	
	* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
	* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
	* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.

	* docs/doxygen/user.cfg.in: Update to doxygen 1.5.1.
	* docs/html/17_intro/license.html: Updated info for generated docs.
	* docs/doxygen/guide.html: Adjust.
	* docs/doxygen/run_doxygen: Adjust.
	* docs/doxygen/mainpage.html: Same.
	* docs/doxygen/doxygroups.cc: Same.
	* docs/doxygen/Intro.3: Same.
	* docs/doxygen/tables.html: Same.

From-SVN: r119334
2006-11-29 20:59:22 +00:00
Paolo Carlini
639b490be5 PR libstdc++/29385 (2nd part, based on an idea by Ion Gaztanaga)
2006-11-26  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29385 (2nd part, based on an idea by Ion Gaztanaga)
	* include/bits/stl_tree.h (_Rb_tree<>::_M_equal_range): Add.
	(equal_range(const key_type&)): Use it.

2006-11-26  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/23_containers/multiset/operations/1.cc: New.
	* testsuite/23_containers/set/operations/1.cc: Likewise.
	* testsuite/23_containers/multimap/operations/1.cc: Likewise.
	* testsuite/23_containers/map/operations/1.cc: Likewise.

From-SVN: r119221
2006-11-26 10:04:25 +00:00
Paolo Carlini
dc4871cba2 [multiple changes]
2006-11-25  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29385 (partial)
	* include/bits/stl_tree.h (_Rb_tree<>::destroy_node): Uglify.
	(_M_erase, erase(iterator), erase(const_iterator)): Adjust

2006-11-25  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29385 (partial)
	* include/bits/stl_tree.h (_Rb_tree<>::_M_lower_bound(_Const_Link_type,
	_Const_Link_type, const _Key&), _M_upper_bound(_Const_Link_type,
	_Const_Link_type, const _Key&)): Add.
	(lower_bound(const key_type&), upper_bound(const key_type&),
	find(const key_type&)): Call the latter.

2006-11-25  Gawain Bolton  <gp.bolton@computer.org>

	PR libstdc++/29385 (partial)
	* include/bits/stl_tree.h (_Rb_tree_rotate_left,
	_Rb_tree_rotate_right): Do not declare.
	(_Rb_tree<>::_M_insert(_Base_ptr, _Base_ptr, const value_type&),
	_M_insert(_Const_Base_ptr, _Const_Base_ptr, const value_type&),
	_M_insert_unique(iterator, const value_type&),
	_M_insert_unique(const_iterator, const value_type&),
	_M_insert_equal(iterator, const value_type&),
	_M_insert_equal(const_iterator, const value_type&)):
	Remove.
	(_Rb_tree<>::_M_insert_(_Const_Base_ptr, _Const_Base_ptr,
	const value_type&), _M_insert_unique_(const_iterator,
	const value_type&), _M_insert_equal_(const_iterator,
	const value_type&)): Add, adjust all callers.
	* include/bits/stl_map.h (map<>::insert(iterator, const value_type&)):
	Adjust.
	* include/bits/stl_set.h (set<>::insert(iterator, const value_type&)):
	Likewise.
	* include/bits/stl_multimap.h (multimap<>::insert(iterator,
	const value_type&)): Likewise.
	* include/bits/stl_multiset.h (multiset<>::insert(iterator,
	const value_type&)): Likewise.

From-SVN: r119190
2006-11-25 10:35:52 +00:00
Paolo Carlini
b3b3633323 locale_facets.tcc (money_get<>::__do_get(iter_type, iter_type, bool, ios_base&, ios_base::iostate&, double&), [...]): Tidy.
2006-10-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (money_get<>::__do_get(iter_type,
	iter_type, bool, ios_base&, ios_base::iostate&, double&),
	money_get<>::do_get(iter_type, iter_type, bool, ios_base&,
	ios_base::iostate&, long double&), money_get<>::do_get(iter_type,
	iter_type, bool, ios_base&, ios_base::iostate&, string_type&)): Tidy.

From-SVN: r117828
2006-10-17 16:43:47 +00:00
Paolo Carlini
8f407473ac re PR libstdc++/26020 (std::advance() isn't stable for floating point numbers)
2006-10-17  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/26020
	* include/bits/stl_iterator_base_funcs.h (advance): Convert
	distance parameter to iterator_traits<>::difference_type.
	* testsuite/24_iterators/26020.cc: New.

From-SVN: r117827
2006-10-17 15:17:32 +00:00
Benjamin Kosnik
46db415941 re PR libstdc++/28514 (libstdc++ vs. anonymous namespaces)
2006-10-17  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/28514 
	* include/bits/cpp_type_traits.h (__detail): Uglify namespace.
	* include/ext/rope: Remove global-scope anonymous namespace, use
	nested __detail. Fixup resulting formatting issues.
	* include/ext/ropeimpl.h: Same.
	* include/tr1/hashtable_policy.h: Remove anonymous namespace
	nesting for __detail.
	* include/tr1/random: Revert anonymous namespace to nested
	__detail namespace.
	* include/tr1/random.tcc: Same.
	* src/ext-inst.cc: Fixups for above.

From-SVN: r117824
2006-10-17 11:56:21 +00:00
Jakub Jelinek
039f9e35a6 basic_string.tcc (_Rep::_S_create): Call _M_set_sharable() for backwards compatibility.
* include/bits/basic_string.tcc (_Rep::_S_create): Call
	_M_set_sharable() for backwards compatibility.

From-SVN: r117777
2006-10-16 11:51:14 +02: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
4fb1953207 ostream.tcc (operator<<(basic_ostream<>&, const char*)): Further fix for throwing widen.
2006-10-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/ostream.tcc (operator<<(basic_ostream<>&,
	const char*)): Further fix for throwing widen.

From-SVN: r117730
2006-10-14 10:25:35 +00:00
Paolo Carlini
78a438f161 ostream.tcc (operator<<(basic_ostream<>&, const char*)): Fix thinko in change for libstdc++/28277, avoid memory leaks.
2006-10-14  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/ostream.tcc (operator<<(basic_ostream<>&,
	const char*)): Fix thinko in change for libstdc++/28277,
	avoid memory leaks.

From-SVN: r117729
2006-10-14 09:51:32 +00:00
Paolo Carlini
f7ab3fd1dc istream.tcc (operator>>(__istream_type& (*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), operator>>(ios_base& (*)(ios_base&))): Move...
2006-10-13  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/istream.tcc (operator>>(__istream_type&
	(*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
	operator>>(ios_base& (*)(ios_base&))): Move...
	* include/std/std_istream.h: ... here.
	(operator>>(basic_istream<char,>&, unsigned char&),
	operator>>(basic_istream<char,>&, signed char&),
	operator>>(basic_istream<char,>&, unsigned char*),
	operator>>(basic_istream<char,>&, signed char*)): Mark inline.
	* include/bits/ostream.tcc (operator<<(__ostream_type&
	(*)(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
	operator<<(ios_base& (*)(ios_base&))): Move...
	* include/std/std_ostream.h: ... here.
	(operator<<(basic_ostream<>&, _CharT),
	operator<<(basic_ostream<>&, char),
	operator<<(basic_ostream<char,>&, char),
	operator<<(basic_ostream<char,>&, signed char),
	operator<<(basic_ostream<char,>&, unsigned char),
	operator<<(basic_ostream<>&, const _CharT*),
	operator<<(basic_ostream<char,>&, const char*),
	operator<<(basic_ostream<char,>&, const signed char*),
	operator<<(basic_ostream<char,>&, const unsigned char*),
	endl(basic_ostream<>&), ends(basic_ostream<>&),
	flush(basic_ostream<>&)): Mark inline.

From-SVN: r117715
2006-10-13 22:46:58 +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
a484326f89 PR libstdc++/28277 (partial: __add_grouping)
2006-10-09  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: __add_grouping)
	* include/bits/locale_facets.tcc (__add_grouping<>(_CharT*, _CharT,
	const char*, size_t, const _CharT*, const _CharT*)): Rewrite in
	non-recursive form.

From-SVN: r117581
2006-10-09 18:04:18 +00:00
Paolo Carlini
c9a5bd5421 PR libstdc++/28277 (partial: money_put bits)
2006-10-09  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: money_put bits)
	* include/bits/locale_facets.tcc (money_put<>::_M_insert(iter_type,
	ios_base&, char_type, const string_type&)): Avoid __builtin_alloca
	with no limit, do the work in place.

	* include/bits/locale_facets.tcc (money_put<>::do_put(iter_type,
	bool, ios_base&, char_type, long double)): Avoid unnecessary
	__builtin_alloca, do the work in place.

From-SVN: r117571
2006-10-09 10:49:50 +00:00
Paolo Carlini
dc2a079607 PR libstdc++/28277 (partial: money_get bits)
2006-10-07  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: money_get bits)
	* include/bits/locale_facets.tcc (money_get<>::do_get(iter_type,
	iter_type, bool, ios_base&, ios_base::iostate&, string_type&)):
	Avoid __builtin_alloca with no limit, do the work in place.

From-SVN: r117549
2006-10-08 01:13:03 +00:00
Ion Gaztanaga
55ce980dc2 stl_tree.h (_Rb_tree<>::erase(const _Key&)): Don't call std::distance unnecessarily.
2006-10-07  Ion Gaztanaga  <igaztanaga@gmail.com>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_tree.h (_Rb_tree<>::erase(const _Key&)): Don't
	call std::distance unnecessarily.

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

From-SVN: r117529
2006-10-07 08:20:35 +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
Paolo Carlini
bcf0248a99 re PR libstdc++/29354 (Error when seeking on an ostringstream)
2006-10-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29354
	* include/bits/sstream.tcc (basic_stringbuf<>::seekpos(pos_type,
	ios_base::openmode)): Allow for seek to pos_type(off_type(0))
	when the stream is empty.
	* testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc: New.
	* testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc: New.

From-SVN: r117494
2006-10-06 09:57:43 +00:00
Paolo Carlini
8072ddb088 stl_uninitialized.h (__uninitialized_fill_n_a(_ForwardIterator, _Size, const _Tp&, allocator<>)): Inline.
2006-09-28  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_uninitialized.h
	(__uninitialized_fill_n_a(_ForwardIterator, _Size, const _Tp&,
	allocator<>)): Inline.

From-SVN: r117285
2006-09-28 18:55:21 +00:00
Paolo Carlini
3b83e64bd3 PR libstdc++/29134 (vector<bool> bits)
2006-09-22  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29134 (vector<bool> bits)
	* include/bits/stl_bvector.h (vector<bool>::max_size):
	Use allocator' max_size.
	* testsuite/23_containers/vector/bool/capacity/29134.cc: New.

	* testsuite/23_containers/deque/capacity/29134-2.cc: Minor tweak.
	* testsuite/23_containers/vector/capacity/29134-2.cc: Likewise.

From-SVN: r117148
2006-09-22 17:51:01 +00:00
Paolo Carlini
7ffb61d503 hash_map: Remove forward declaration of equality operator...
2006-09-21  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/hash_map: Remove forward declaration of equality
	operator, not needed for friendship of all its instances.
	* include/ext/hash_set: Likewise.
	* include/bits/stl_set.h: Likewise for equality operator and
	operator less.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/streambuf_iterator.h: Likewise for copy.
	* include/std/std_streambuf.h: Likewise for __copy_aux and find.
	* include/tr1/boost_shared_ptr.h: Likewise for get_deleter.
	* include/tr1/random: Likewise, remove all forward declarations
	of inserters and extractors.

From-SVN: r117116
2006-09-21 17:54:50 +00:00
Paolo Carlini
1f9c69a9a3 re PR libstdc++/29134 (Has there been a serious attempt to define the max_size() member functions?)
2006-09-20  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29134
	* include/bits/stl_list.h (list<>::max_size): Forward to allocator'
	max_size.
	* include/bits/stl_vector.h (vector<>::max_size): Likewise.
	* include/bits/stl_deque.h (deque<>::max_size): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>::max_size): Likewise.
	* include/tr1/hashtable (_Hashtable<>::max_size): Likewise.
	* testsuite/23_containers/vector/capacity/29134.cc: Add.
	* testsuite/23_containers/deque/capacity/29134.cc: Likewise.
	* testsuite/23_containers/list/capacity/29134.cc: Likewise.
	* testsuite/23_containers/set/capacity/29134.cc: Likewise.
	* testsuite/23_containers/map/capacity/29134.cc: Likewise.
	* testsuite/23_containers/multiset/capacity/29134.cc: Likewise.
	* testsuite/23_containers/multimap/capacity/29134.cc: Likewise.	
	* testsuite/tr1/6_containers/unordered/capacity/29134-set.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/capacity/29134-map.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc:
	Likewise.
	* testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc:
	Likewise.

	* include/bits/deque.tcc (deque<>::_M_new_elements_at_front,
	deque<>::_M_new_elements_at_back): Check for length errors.
	* testsuite/23_containers/deque/capacity/29134-2.cc: New.
	* testsuite/23_containers/vector/capacity/29134-2.cc: Likewise.

	* include/tr1/hashtable (_Hashtable<>::_M_get_Value_allocator): Add.
	(_Hashtable<>::_M_allocate_node, _M_deallocate_node): Use it.
	* testsuite/tr1/6_containers/unordered/instantiate/set.cc: Add test.
	* testsuite/tr1/6_containers/unordered/instantiate/map.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/multiset.cc:
	Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/multimap.cc:
	Likewise.

From-SVN: r117099
2006-09-21 00:11:52 +00:00
Paolo Carlini
17cdf08234 locale_facets.tcc (_M_group_int): Remove redundant using-declaration.
2006-09-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (_M_group_int): Remove
	redundant using-declaration.

From-SVN: r117028
2006-09-18 16:05:25 +00:00
Benjamin Kosnik
105c6331b2 type_traits.h: New.
2006-09-18  Benjamin Kosnik  <bkoz@redhat.com>
	    Peter Doerfler  <gcc@pdoerfler.com>
	    Paolo Carlini  <pcarlini@suse.de>
	
	* include/ext/type_traits.h: New. 
	(__conditional_type): New.
	(__numeric_traits): New.
	(__add_unsigned): New.
	(__remove_unsigned): New.
	(__enable_if): New.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.
	* include/ext/pb_ds/detail/type_utils.hpp: Use ext include,
	remove duplicates.
	* include/tr1/hashtable_policy.h (IF): Use __conditional_type.
	(_Max_digits10): Same.
	(identity): Use _Identity.
	(extract1st): Use _Select1st.
	* include/tr1/random (_Select): Use __conditional_type.
	(_To_Unsigned_Type): Use __add_unsigned. Linebreak fixups.
	* include/bits/locale_facets.tcc (__to_unsigned_type): Remove, use
	__add_unsigned.
	* include/tr1/random.tcc: Fixups as above.
	* include/tr1/unordered_map: Same.
	* include/tr1/hashtable: Same.
	* include/tr1/unordered_set: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/
	standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same.
	* include/ext/pb_ds/detail/type_utils.hpp: Same.
	* include/ext/pb_ds/trie_policy.hpp: Same.
	* docs/html/ext/pb_ds/string_trie_e_access_traits.html: Same.
	
	* include/bits/cpp_type_traits.h (__enable_if): Move to ext, make
	boolean argument first.	
	* include/bits/locale_facets.h: Fixups for __enable_if argument
	and namespace switch.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/streambuf_iterator.h: Same.
	* include/debug/safe_iterator.h: Same.
	* include/tr1/hashtable_policy.h: Same.
	* include/tr1/cmath: Same.
	* include/tr1/functional: Same.
	* include/tr1/functional_iterate.h: Same.
	* include/std/std_streambuf.h: Same.
	* include/c_std/std_cmath.h: Same.
	* testsuite/util/testsuite_tr1.h: Same.
	* testsuite/util/performance/assoc/multimap_common_type.hpp: Same.


Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
Co-Authored-By: Peter Doerfler <gcc@pdoerfler.com>

From-SVN: r117024
2006-09-18 13:30:56 +00:00
Paolo Carlini
bcc4a44f6b re PR libstdc++/29063 (valarray does not undefine all temp macros)
2006-09-18  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/29063
	* include/bits/valarray_array.h: Fix typo, undefine
	_DEFINE_ARRAY_FUNCTION.
	* include/std/std_valarray.h: Undefine _DEFINE_BINARY_OPERATOR.

From-SVN: r117019
2006-09-18 09:19:36 +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
8cfb1bca83 stl_heap.h (sort_heap): Iterator post-decrement is only required to be convertible to the iterator type.
2006-09-10  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_heap.h (sort_heap): Iterator post-decrement is
	only required to be convertible to the iterator type.

From-SVN: r116812
2006-09-10 09:23:59 +00:00
Paolo Carlini
5527be59f4 basic_string.tcc (find(const _CharT*, size_type, size_type)): Robustify.
2006-09-05  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.tcc (find(const _CharT*, size_type,
	size_type)): Robustify.
	* include/ext/vstring.tcc (find(const _CharT*, size_type,
	size_type)): Likewise.

From-SVN: r116700
2006-09-05 17:38:44 +00:00
Paolo Carlini
1a4ba99f96 basic_string.tcc (find(const _CharT*, size_type, size_type)): Reimplement in terms of traits::eq and traits::compare.
2006-09-05  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/basic_string.tcc (find(const _CharT*, size_type,
	size_type)): Reimplement in terms of traits::eq and traits::compare.
	* include/ext/vstring.tcc (find(const _CharT*, size_type,
	size_type)): Likewise.
	* src/string-inst.cc: Remove unneded std::search instantiation.

From-SVN: r116698
2006-09-05 15:43:47 +00:00
Benjamin Kosnik
06e744948b re PR c++/28871 (massive C++ compile time slowdown)
2006-09-04  Benjamin Kosnik  <bkoz@redhat.com>

	PR c++/28871
	* include/ext/bitmap_allocator.h: Add comment for end of anonymous
	namespace.
	* include/ext/rope: Same.
	* include/bits/cpp_type_traits.h: Same.
	* include/tr1/tuple: Same.
	* include/tr1/functional_iterate.h: Same.

	* include/bits/cpp_type_traits.h: Revert anonymous namespace
	change, use nested detail instead.

	* testsuite/lib/libstdc++.exp (libstdc++_init): PCHFLAGS revert to
	stdc++.h.

From-SVN: r116680
2006-09-04 15:41:18 +00:00
Benjamin Kosnik
1b98c24e32 PR libstdc++/28671 continued
2006-08-31  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/28671 continued
	* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't use
	CXXFLAGS when checking for atomic builtins.
	* configure: Regenerate.
	* include/bits/atomicity.h: Revert.

From-SVN: r116608
2006-08-31 22:20:09 +00:00
Benjamin Kosnik
f640f39eef re PR libstdc++/28671 (undefined reference to `__sync_fetch_and_add_4')
2006-08-31  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/28671
	* include/bits/atomicity.h (__exchange_and_add): Declare only.
	(__atomic_add): Same.
	* config/cpu/generic/atomicity_builtins/atomicity.h: Remove comment.

From-SVN: r116601
2006-08-31 10:45:59 +00:00
Benjamin Kosnik
b93d5ca9df gnu.ver: Spell out exact signatures for atomic access functions.
2006-08-30  Benjamin Kosnik  <bkoz@redhat.com>
            Richard Guenther  <rguenther@suse.de>
	
	* config/abi/pre/gnu.ver: Spell out exact signatures for atomic
	access functions.

	* include/bits/atomicity.h (__atomic_add_dispatch): Remove
	volatile qualification for _Atomic_word argument.
	(__atomic_add_single): Same.
	(__exchange_and_add_dispatch): Same.
	(__exchange_and_add_single): Same.
	

Co-Authored-By: Richard Guenther <rguenther@suse.de>

From-SVN: r116584
2006-08-30 09:39:45 +00:00
Roger Sayle
8c093661a3 stl_algo.h (__heap_select, [...]): New.
2006-08-28  Roger Sayle  <roger@eyesopen.com>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (__heap_select, __introselect): New.
	(nth_element): New implementation.
	(partial_copy): Use __heap_select.
	* testsuite/performance/25_algorithms/nth_element_worst_case.cc: New.

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

From-SVN: r116520
2006-08-28 18:32:35 +00:00
Paolo Carlini
4e571cd5ac stl_bvector.h (__fill_bvector(_Bit_iterator, _Bit_iterator, bool)): New.
2006-08-11  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (__fill_bvector(_Bit_iterator,
	_Bit_iterator, bool)): New.
	(fill(_Bit_iterator, _Bit_iterator, const bool&)): Use it.

From-SVN: r116081
2006-08-11 10:39:37 +00:00
Paolo Carlini
22a8ed6556 stl_bvector.h (_Bit_iterator_base::_M_incr(ptrdiff_t)): Tidy a bit, thus reducing generated code size.
2006-08-10  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (_Bit_iterator_base::_M_incr(ptrdiff_t)):
	Tidy a bit, thus reducing generated code size.

From-SVN: r116059
2006-08-10 10:35:27 +00:00
Paolo Carlini
976e25f422 stl_bvector.h (vector<bool>::_M_copy_aligned): New.
2006-08-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_bvector.h (vector<bool>::_M_copy_aligned): New.
	(vector<bool>::vector(const vector&), operator=(const vector&),
	reserve(size_type), _M_fill_insert(iterator, size_type, bool),
	_M_insert_range(iterator, _ForwardIterator, _ForwardIterator,
	std::forward_iterator_tag), _M_insert_aux(iterator, bool)): Use it.
	* testsuite/performance/23_containers/copy_construct/
	vector_bool.cc: New.

	* testsuite/23_containers/vector/bool/cons/1.cc: New.
	* testsuite/23_containers/vector/bool/cons/2.cc: Likewise.

	* include/bits/stl_bvector.h (vector<bool>::_M_fill): Remove.
	(fill(_Bit_iterator, _Bit_iterator, const bool&)): New.
	(vector<bool>::_M_fill_insert(iterator, size_type, bool)): Adjust.

	* include/bits/stl_bvector.h (_M_initialize_range(_InputIterator,
	_InputIterator, std::input_iterator_tag)): Remove redundant
	assignments.

	* include/bits/stl_algo.h (find(istreambuf_iterator<>,
	istreambuf_iterator<>, _CharT)): Adjust signature.
	* include/bits/streambuf_iterator.h: Likewise.
	* include/std/std_streambuf.h: Likewise.

From-SVN: r116049
2006-08-09 23:39:16 +00:00
Paolo Carlini
62c7a041bb stl_algobase.h (fill(const _Deque_iterator<>&, const _Deque_iterator<>&, const _Tp&)): Move...
2006-08-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (fill(const _Deque_iterator<>&,
	const _Deque_iterator<>&, const _Tp&)): Move...
	* include/bits/deque.tcc: ... here.
	* include/bits/stl_deque.h: Declare.

From-SVN: r116034
2006-08-09 09:56:15 +00:00
Paolo Carlini
da452330ca re PR libstdc++/16611 (Terrible code generated for vector<bool>)
2006-08-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/16611
	* include/bits/stl_bvector.h (vector<bool>::operator[],
	vector<bool>::operator[] const): Do not use iterator::operator+,
	hand code.

From-SVN: r115972
2006-08-06 14:45:04 +00:00
Paolo Carlini
15ecde8ebf re PR libstdc++/28587 (vector<bool> is extremely slow (900x slower than it should be))
2006-08-05  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28587
	* include/bits/stl_bvector.h (vector<bool>::_M_fill): New.
	(vector<bool>::_M_fill_insert): Use it.
	* testsuite/performance/23_containers/resize/vector_bool.cc: New.
	
	* testsuite/23_containers/vector/bool/modifiers/insert/1.cc: New.
	* testsuite/23_containers/vector/bool/capacity/1.cc: Likewise.

From-SVN: r115947
2006-08-05 10:11:13 +00:00
Paolo Carlini
8443c250af stl_queue.h (priority_queue<>::push, [...]): Remove try/catch, just follow the letter of the Standard.
2006-08-04  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_queue.h (priority_queue<>::push,
	priority_queue<>::pop): Remove try/catch, just follow the
	letter of the Standard.

From-SVN: r115923
2006-08-04 09:34:17 +00:00
Paolo Carlini
d508327cc8 stl_queue.h: Trivial formatting fixes.
2006-08-03  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_queue.h: Trivial formatting fixes.
	* include/bits/stl_stack.h: Likewise.

From-SVN: r115911
2006-08-03 21:11:13 +00:00
Paolo Carlini
caade1927f locale_facets.tcc (num_put<>::_M_insert_float): Find the decimal point in cs, instead of ws; tidy.
2006-07-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
	Find the decimal point in cs, instead of ws; tidy.

From-SVN: r115840
2006-07-31 19:26:58 +00:00
Paolo Carlini
43804767bb stl_algo.h (stable_sort): Uglify the buf variable.
2006-07-30  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h (stable_sort): Uglify the buf variable.
	* include/bits/stl_tempbuf.h (_Temporary_buffer<>::
	_M_initialize_buffer): Uglify the val parameter.

From-SVN: r115820
2006-07-30 13:02:58 +00:00
Benjamin Kosnik
b82f782bfb PR libstdc++/19664 round 3
2006-07-27  Benjamin Kosnik  <bkoz@wells.artheist.org>

	PR libstdc++/19664 round 3	
	* include/Makefile.am (tr1_headers): Add hashtable_policy.h.
	* include/Makefile.in: Regenerate.
	* include/tr1/hashtable: Move policy classes into...
	* include/tr1/hashtable_policy.h: ... this. New.
	
	* src/globals_locale.cc: Move contents....
	* src/locale_init.cc: ... to here, put in anonymous namespace.
	* src/Makefile.am: Remove globals_locale.cc.
	* src/Makefile.in: Regenerate.

	* src/locale.cc: Convert __gnu_internal to anonymous namespace.
	* src/debug.cc: Same.
	* src/ext-inst.cc: Same.
	* src/mt_allocator.cc: Same.
	* src/pool_allocator.cc: Same.
	
	* include/tr1/random: Convert std::tr1::_Private to anonymous
	namespace.
	* include/tr1/random.tcc: Same.

	* include/tr1/hashtable: Move ::Internal to std::tr1::detail and
	enclose bits that can actually be internal in in anonymous
	namespace.
	* include/tr1/unordered_set: Adjust explicit qualifications for
	namespace changes.
	* include/tr1/unordered_map: Same.

	* include/tr1/cmath: Convert __gnu_internal to nested detail namespace.

	* include/bits/cpp_type_traits.h: Move __type_type into anonymous
	namespace.
	
	* include/ext/rope: Change _Rope_constants to anonymous namespace.
	* include/ext/ropeimpl.h: Same.
	* src/ext-inst.cc: Same.

From-SVN: r115790
2006-07-28 04:57:34 +00:00
Benjamin Kosnik
98e615b485 PR libstdc++/19664 round 1
2006-07-20  Benjamin Kosnik  <bkoz@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	
	PR libstdc++/19664 round 1
	* acinclude.m4 (GLIBCXX_ENABLE_VISIBILITY): Check it.
	* configure.ac: Use it.
	* configure: Regenerate.
	* docs/html/configopts.html: Document it.
	* include/Makefile.am: Slip in to c++config.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config (_GLIBCXX_VISIBILITY): New.
	(_GLIBCXX_BEGIN_NAMESPACE): Use it.
	(_GLIBCXX_END_NAMESPACE): Use it.
	(_GLIBCXX_BEGIN_NESTED_NAMESPACE): Use it.
	(_GLIBCXX_END_NESTED_NAMESPACE): Use it.		
	* src/debug.cc: Mark __gnu_internal namespace with hidden
	visibility attribute.
	* src/ext-inst.cc: Same.
	* src/globals_io.cc: Same.
	* src/globals_locale.cc: Same.
	* src/ios_init.cc: Same.
	* src/locale.cc: Same.
	* src/mt_allocator.cc: Same.
	* src/pool_allocator.cc: Same.


Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r115632
2006-07-20 23:37:27 +00:00
Paolo Carlini
6f0cb13801 PR libstdc++/28277 (partial: ostream bits 1)
2006-07-15  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: ostream bits 1)
	* include/bits/ostream.tcc (operator<<(basic_ostream<_CharT>&,
	const char*)): Avoid __builtin_alloca with no limit in the
	widening.
	* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
	28277-1.cc: New.

From-SVN: r115485
2006-07-15 20:30:50 +00:00
Benjamin Kosnik
701a3eeeef acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): New.
2006-07-14  Benjamin Kosnik  <bkoz@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): New.
        * configure.ac: Use it.
        * configure: Regenerated.	
        * config.h.in: Regenerated.		
        * configure.host: Simplify.
        * include/bits/atomicity.h: Adjust macros.	
        * config/cpu/generic/atomicity.h: Move...
        * config/cpu/generic/atomicity_mutex: New.
        * config/cpu/generic/atomicity_mutex/atomicity.h: ...here.
        * config/cpu/generic/atomic_builtins: Rename...
        * config/cpu/generic/atomicity_builtins: ...to this.
        * config/cpu/generic/atomicity_builtins/atomicity.h: Moved.
	* config/cpu/mips/atomicity.h: Comment MIPS II requirement.

	* scripts/testsuite_flags.in: Make --cxxflags reflect CXXFLAGS.

From-SVN: r115456
2006-07-14 22:41:43 +00:00
Paolo Carlini
420644ea23 locale_facets.tcc (collate<>::do_transform( const _CharT*, const _CharT*)): Simplify previous fix for libstdc++/28277, always allocate memory dynamically.
2006-07-11  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (collate<>::do_transform(
	const _CharT*, const _CharT*)): Simplify previous fix for
	libstdc++/28277, always allocate memory dynamically.

From-SVN: r115356
2006-07-12 00:05:50 +00:00
Paolo Carlini
36bb088b04 PR libstdc++/28277 (partial: collate bits)
2006-07-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28277 (partial: collate bits)
	* include/bits/locale_facets.tcc (collate<>::do_transform(
	const _CharT*, const _CharT*)): Avoid __builtin_alloca with no
	limit; also avoid multiple calls (in a loop).
	* testsuite/22_locale/collate/transform/char/28277.cc: New.
	* testsuite/22_locale/collate/transform/wchar_t/28277.cc: Likewise.

From-SVN: r115332
2006-07-11 11:21:38 +00:00
Paolo Carlini
5c171a745d locale_facets.tcc (__int_to_char<>(_CharT*, long, const _CharT*, ios_base::fmtflags), [...]): Remove.
2006-07-09  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (__int_to_char<>(_CharT*,
	long, const _CharT*, ios_base::fmtflags), __int_to_char<>(_CharT*,
	unsigned long, const _CharT*, ios_base::fmtflags),
	__int_to_char<>(_CharT*, long long, const _CharT*, ios_base::fmtflags),
	__int_to_char<>(_CharT*, unsigned long long, const _CharT*,
	ios_base::fmtflags)): Remove.
	(__int_to_char<>(_CharT*, _ValueT, const _CharT*, ios_base::fmtflags,
	bool)): Adjust.
	(num_put<>::_M_insert_int(_OutIter, ios_base&, _CharT, _ValueT)):
	Likewise.

From-SVN: r115298
2006-07-09 21:26:19 +00:00
Paolo Carlini
e0480f3fdc postypes.h (operator==(const fpos<>&, const fpos<>&), [...]): Add.
2006-06-21  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/postypes.h (operator==(const fpos<>&, const fpos<>&),
	operator!=(const fpos<>&, const fpos<>&)): Add.
	* testsuite/27_io/fpos/mbstate_t/6.cc: New.

From-SVN: r114871
2006-06-21 22:21:45 +00:00
Paolo Carlini
e11b210a9c locale_facets.tcc (time_get<>::_M_extract_via_format): Ignore the value of the __err argument.
2006-06-17  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format):
	Ignore the value of the __err argument.
	(time_get<>::do_get_weekday): Likewise.
	(time_get<>::do_get_monthname): Likewise.
	* testsuite/22_locale/time_get/get_year/wchar_t/5.cc: New.
	* testsuite/22_locale/time_get/get_year/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_monthname/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/char/5.cc: Likewise.

From-SVN: r114728
2006-06-16 22:13:13 +00:00