Commit Graph

4746 Commits

Author SHA1 Message Date
Paolo Carlini
d2cc7f9266 stl_vector.h (vector(const vector&)): Use _M_get_Tp_allocator.
2005-12-17  Paolo Carlini  <pcarlini@suse.de>

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

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

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

From-SVN: r108727
2005-12-17 23:42:58 +00:00
Gabriel Dos Reis
ad816b52a4 valarray_after.h (_Expr<>::operator[](slice)): Don't assume the closure implements general indexing...
* include/bits/valarray_after.h (_Expr<>::operator[](slice)):
        Don't assume the closure implements general indexing, as a matter
        of fact, most of them don't.
        (_Expr<>::operator[](const gslice&)): Likewise.
        (_Expr<>::operator[](const valarray<bool>&)): Likewise.
        (_Expr<>::operator[](const valarray<size_t>&)): Likewise.
        (_Expr<>::shift): Fix thinko.
        (_Expr<>::cshift): Likewise.
        (_Expr<>::apply): Likewise.

From-SVN: r108714
2005-12-17 15:36:35 +00:00
Paolo Carlini
b642a22a13 is_empty.cc: Fix class NonEmptyClassTwo.
2005-12-16  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/tr1/4_metaprogramming/type_properties/is_empty/is_empty.cc:
	Fix class NonEmptyClassTwo.

From-SVN: r108683
2005-12-16 21:33:32 +00:00
Paolo Carlini
8d46ce6095 stl_vector.h (vector<>::_M_get_Tp_allocator): Change to return by ref and add non const version.
2005-12-15  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (vector<>::_M_get_Tp_allocator): Change
	to return by ref and add non const version.
	* include/bits/stl_deque.h (deque<>::_M_get_Tp_allocator): Likewise.

From-SVN: r108570
2005-12-15 11:31:59 +00:00
Paolo Carlini
cd6dba21ac re PR libstdc++/25421 (catching exception from codecvt_byname() segfaults)
2005-12-15  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/25421
	* config/locale/gnu/c_locale.cc (_S_destroy_c_locale): Check
	for null argument.
	* testsuite/22_locale/facet/25421.cc: New.

From-SVN: r108565
2005-12-15 10:11:03 +00:00
Carlos O'Donell
264c41eda5 c-cppbuiltin.c (builtin_define_float_constants): Add fp_cast parameter, pass to builtin_define_with_hex_fp_value.
2005-12-13  Carlos O'Donell <carlos@codesourcery.com>

gcc/

	* c-cppbuiltin.c (builtin_define_float_constants): Add
	fp_cast parameter, pass to builtin_define_with_hex_fp_value.
	Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
	(builtin_define_with_hex_fp_value): Use fp_cast when building macro.
	(c_cpp_builtins): If flag_single_precision_constant then set fp_cast
	to "((double)%sL)" otherwise "%s".

gcc/testsuite/

	* gcc.dg/single-precision-constant.c: New test.

libstdc++-v3/

	* include/std/std_limits.h (struct numeric_limits):
	Use __DBL_HAS_DENORM__, __FLT_HAS_DENORM__, __LDBL_HAS_DENORM__.

From-SVN: r108458
2005-12-13 05:12:32 +00:00
Paolo Carlini
b6105bf2c3 sso_string_base.h (__sso_string_base<>::_M_compare): Add...
2005-12-10  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_compare):
	Add, specialized for char and wchar_t to immediately return true
	when a string is compared to itself.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_compare):
	Likewise, for the same _Rep.
	* include/ext/vstring.h (compare(const string&)): Use it.

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_destroy):
	Deallocate passed size + 1.
	(_M_dispose, _M_reserve): Adjust.

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

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

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

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

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

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

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

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

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

From-SVN: r108227
2005-12-08 11:32:37 +00:00
Paolo Carlini
638004ccd7 configopts.html ([--enable-libstdcxx-allocator]): Mention the SGI pooled allocator.
2005-12-07  Paolo Carlini  <pcarlini@suse.de>

	* docs/html/configopts.html ([--enable-libstdcxx-allocator]):
	Mention the SGI pooled allocator.

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

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

From-SVN: r108123
2005-12-06 17:19:30 +00:00
Paolo Carlini
afe6d70550 sso_string_base.h (__sso_string_base<>::_M_assign): Simplify, avoid pointless reallocations.
2005-12-05  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_assign):
	Simplify, avoid pointless reallocations.

From-SVN: r108063
2005-12-05 16:39:18 +00:00
Paolo Carlini
56540d20c2 sso_string_base.h (__sso_string_base<>::_M_reserve): Simplify.
2005-12-04  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve):
	Simplify.

From-SVN: r108036
2005-12-05 01:57:59 +00:00
Paolo Carlini
cf8829194f vstring.h (__versa_string<>::operator+, [...]): Move out of line...
2005-12-04  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/vstring.h (__versa_string<>::operator+, all
	versions): Move out of line...
	* include/ext/vstring.tcc (__versa_string<>::operator+): ...
	here; consistently use reserve for the benefit of sso_string_base;
	prefer push_back to single-char append when appropriate.

	* include/ext/vstring.h (__versa_string<>::push_back): Don't
	call _M_reserve, _M_mutate instead.
	(reserve): Just forward to _M_reserve.
	* include/ext/vstring.tcc (__versa_string<>::_M_reserve): Remove.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_reserve): Also
	do the initial checks (first on length, in case __res == capacity).
	* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve:
	Likewise; don't call _M_set_length unnecessarily.

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

	* include/ext/vstring.h (__versa_string<>::_M_append): New.
	(append(const __versa_string&), append(const __versa_string&,
	size_type, size_type), append(const _CharT*, size_type),
	append(const _CharT*)): Use it.
	(append(size_type, _CharT)): Delegate to _M_replace_aux.
	(assign(const __versa_string&, size_type, size_type),
	assign(const _CharT*), replace(size_type, size_type,
	const _CharT*, size_type)): Forward to _M_replace.
	* include/ext/vstring.tcc (__versa_string<>::_M_append):
	Define, core append functionality.
	(_M_replace): Simplify, move __s == 0 case to _M_replace_aux.
	(_M_replace_aux): Reorganize, don't call _M_replace.

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

	* include/ext/vstring.tcc (__versa_string<>::_M_replace):
	Perform _M_check_length at the beginning and remove it from ...
	(replace, _M_replace_dispatch, _M_replace_aux, assign): ... here.
	(assign): Now move inline.
	(resize): Don't call _M_check_length redundantly, append does.

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

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_get_allocator):
	Add non const version.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_get_allocator):
	Likewise.
	
	* include/ext/sso_string_base.h (__sso_string_base<>::_M_erase): Add.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_erase): Likewise.
	(_M_leak_hard): Use it.
	* include/ext/vstring.h (__versa_string<>::clear, erase, all
	versions): Use it.
	* include/ext/vstring.tcc (__versa_string<>::resize): Likewise.

	* include/ext/vstring.h (__versa_string<>::_M_replace_safe):
	Remove.
	* include/ext/vstring.h (__versa_string<>::_M_replace): New, does
	the in-place work or delegates to _M_mutate in case of reallocation.
	* include/ext/vstring.tcc (__versa_string<>::_M_replace_safe):
	Remove.
	* include/ext/vstring.tcc (__versa_string<>::_M_replace): Define.
	(assign, replace, _M_replace_dispatch, _M_replace_aux): Use it.
	* include/ext/sso_string_base.h (__sso_string_base<>::_M_mutate):
	Change to manage only reallocations.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_mutate):
	Likewise.

	* include/ext/vstring.h (__versa_string<>::insert(size_type,
	const __versa_string&), insert(size_type, const __versa_string&,
	size_type, size_type), insert(size_type, const _CharT*, size_type),
	insert(size_type, const _CharT*)): Delegate to replace.

	* include/ext/vstring.h (__versa_string<>::reserve): Move out of
	line.
	* include/ext/vstring.tcc (__versa_string<>::reserve): Do the
	checks and call _M_reserve.
	* include/ext/vstring.h (__versa_string<>::append): Call _M_reserve
	instead of reserve.
	* include/ext/vstring.tcc (__versa_string<>::append, all versions):
	Likewise.
	* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve):
	Adjust.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_reserve):
	Likewise.

From-SVN: r108034
2005-12-05 00:32:31 +00:00
David Billinghurst
8e28929764 re PR testsuite/25193 (libstdc++ testsuite fails on cygwin)
2005-12-02  David Billinghurst (David.Billinghurst@riotinto.com)

	PR testsuite/25193
	* testsuite/lib/libstdc++.exp (libstdc++-dg-test): Catch
	error if file cannot be deleted.

From-SVN: r107841
2005-12-01 23:57:28 +00:00
Paolo Carlini
7fdc03073c PR libstdc++/24975 (basic_string)
2005-11-23  Paolo Carlini  <pcarlini@suse.de>

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

From-SVN: r107447
2005-11-24 01:29:51 +00:00
Paolo Carlini
d5e07b79f4 re PR libstdc++/24975 (Aliasing problems inside libstdc++)
2005-11-22  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24975
	* include/bits/stl_set.h (insert(iterator, const value_type&),
	erase(iterator), erase(iterator, iterator)): Don't break aliasing
	rules casting to _Rep_iterator&, forward to _Rb_tree facilities.
	* include/bits/stl_multiset.h (insert(iterator, const value_type&),
	erase(iterator), erase(iterator, iterator)): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>::_M_insert(_Const_Base_ptr,
	_Const_Base_ptr, const value_type&), insert_unique(const_iterator,
	const value_type&), insert_equal(const_iterator, const value_type&),
	erase(const_iterator), erase(const_iterator, const_iterator)): New,
	_Rb_tree<>::const_iterator counterparts of existing facilities.

From-SVN: r107362
2005-11-22 14:53:03 +00:00
Benjamin Kosnik
cddfb1c7ac re PR libstdc++/23591 (exceptions in plugins in threads cause segmentation violation by leaving bad exit handler for the pthread)
2005-11-21  Benjamin Kosnik  <bkoz@redhat.com>
            Ulrich Drepper  <drepper@redhat.com>

	PR libstdc++/23591
	* scripts/create_testsuite_files: Support for "C" test files.
	* testsuite/lib/libstdc++.exp: Same.
	* testsuite/libstdc++-dg/normal.exp: Same.
	* testsuite/ext/mt_allocator/22309_thread.cc: Update names.
	* testsuite/19_diagnostics/23591_thread-1.c: New.
	* testsuite/testsuite_shared.cc: Add tests, rename existing functions.
	* libsupc++/eh_globals.cc: Make global thread local if possible.
	* configure.ac: Use GCC_CHECK_TLS.
	* acinclude.m4: Include tls.m4.
	* configure: Regenerate.
	* config.h.in: Same.


Co-Authored-By: Ulrich Drepper <drepper@redhat.com>

From-SVN: r107350
2005-11-22 06:54:08 +00:00
Benjamin Kosnik
b967bf2560 del_op.cc: Include c++config.h first.
2005-11-21  Benjamin Kosnik  <bkoz@redhat.com>

	* libsupc++/del_op.cc: Include c++config.h first.
	* libsupc++/eh_alloc.cc: Same.
	* libsupc++/new_opv.cc: Same.
	* libsupc++/eh_throw.cc: Same.
	* libsupc++/new_op.cc: Same.
	* libsupc++/del_opv.cc: Same.
	* libsupc++/eh_catch.cc: Same.
	* libsupc++/guard.cc: Same.
	* libsupc++/del_opnt.cc: Same.
	* libsupc++/eh_exception.cc: Same.
	* libsupc++/new_opvnt.cc: Same.
	* libsupc++/eh_term_handler.cc: Same.
	* libsupc++/eh_personality.cc: Same.
	* libsupc++/eh_call.cc: Same.
	* libsupc++/new_opnt.cc: Same.
	* libsupc++/del_opvnt.cc: Same.

2005-11-21  Benjamin Kosnik  <bkoz@redhat.com>

	* src/Makefile.am (LTCXXCOMPILE): CXXFLAGS last.
	* libsupc++/Makefile.am: Same.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Same.

From-SVN: r107343
2005-11-22 00:19:07 +00:00
Paolo Carlini
b6cb8dc2d8 sso_string_base.h: Minor formatting and stylistic fixes.
2005-11-21  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h: Minor formatting and stylistic fixes.
	(__sso_string_base<>::_M_get_allocator): Return by const ref.
	* include/ext/rc_string_base.h: Likewise.
	(__rc_string_base<>::_M_get_allocator): Return by const ref.
	(__rc_string_base<>::_M_dispose): Take void, use _M_get_allocator.
	(__rc_string_base<>::_M_grab): Take one alloc, use _M_get_allocator.
	(__rc_string_base<>::~__rc_string_base,
	__rc_string_base(const __rc_string_base&), _M_assign, _M_reserve,
	_M_mutate): Adjust.
	* include/ext/vstring_util.h: Minor stylistic fixes.

From-SVN: r107317
2005-11-21 18:38:05 +00:00
Paolo Carlini
7697e6c66a rc_string_base.h (__rc_string_base<>::_Rep): Avoid the anonymous struct extension, adjust everywhere.
2005-11-18  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/rc_string_base.h (__rc_string_base<>::_Rep): Avoid the
	anonymous struct extension, adjust everywhere.

	* include/ext/rc_string_base.h (__rc_string_base<>::_S_empty_rep()):
	Just use a static member.
	(__rc_string_base<>::__rc_string_base(), _S_construct): Adjust.

	* include/ext/rc_string_base.h (__rc_string_base<>::_Rep): Use anonymous
	union together with _CharT to fix alignment issues, rebind to _Rep and
	rename _Raw_alloc to _Rep_alloc_type.
	(__rc_string_base<>::_Rep::_S_create, _M_destroy): Adjust consistently.

	* include/ext/vstring_util.h (__is_null_p): Move inside struct
	__vstring_utility as static _S_is_null_pointer.
	* include/ext/sso_string.h
	(__sso_string_base<>::_M_construct(std::forward_iterator_tag): Adjust.
	* include/ext/rc_string_base.h
	(__rc_string_base<>::_S_construct(std::forward_iterator_tag): Likewise.

	Implement Option 3 of DR 431 for ext/vstring - both available bases.
	* include/bits/cpp_type_traits.h (struct __is_empty): Add.
	* include/ext/vstring.h (__versa_string<>::swap): Delegate to
	this->_M_swap.
	* include/ext/vstring.tcc (__versa_string<>::swap): Remove.
	* include/ext/vstring_util.h (struct __vstring_utility<>): Add struct
	_Alloc_hider<>, augmented of allocator swapping facility, specialized
	to nop for empty allocators.
	* include/ext/rc_string_base.h (__rc_string_base<>::_M_swap): Use it.
	(__rc_string_base<>::_M_is_leaked, _M_set_sharable): Change to private.
	* include/ext/sso_string_base.h	(__sso_string_base<>::_M_swap):
	Likewise.
	(__sso_string_base<>::_M_is_leaked, _M_set_sharable): Remove, unused.	

	* include/ext/rc_string_base.h (__rc_string_base<>::_M_data(_CharT*):
	Return void.
	* include/ext/sso_string_base.h (__sso_string_base<>::_M_data(_CharT*):
	Likewise.

From-SVN: r107176
2005-11-18 11:50:22 +00:00
Geoffrey Keating
f9314d012c /Network/Servers/hills/Volumes/capanna/gkeating/l
From-SVN: r107131
2005-11-17 20:10:51 +00:00
Nathan Sidwell
1dcca6f361 unwind-arm.h: Reorder interface function declarations.
2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
gcc/
	* config/arm/unwind-arm.h: Reorder interface function declarations.
	(_URC_END_OF_STACK): New enumeration value.
	(_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
	(struct _Unwind_Control_Block): Document reserved field use.
	(_Unwind_Stop_Fn): New typedef.
	(_Unwind_ForcedUnwind): Declare.
	(_Unwind_Resume_or_Rethrow): Declare.
	* config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
	argument.  Adjust.
	(_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
	* config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
	(UCB_FORCED_STOP_ARG): New.
	(search_EIT_table): Update boundary condition checks.
	(get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
	(unwind_phase2): Replace for with do..while.
	(unwind_phase2_forced): New.
	(__gnu_Unwind_RaiseException): Replace for with do..while.
	(__gnu_Unwind_ForcedUnwind): New.
	(__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
	Use appropriate phase2 unwinder.
	(__gnu_Unwind_Resume_or_Rethrow): New.
	(__gnu_unwind_pr_common): Cope with forced unwinding.
gcc/testsuite/
	* g++.dg/eh/forced1.C: Adjust to cope with ARM EABI
	structures.
	* g++.dg/eh/forced2.C: Likewise.
	* g++.dg/eh/forced3.C: Likewise.
	* g++.dg/eh/forced4.C: Likewise.
libstdc++-v3/
	* libsupc++/eh_arm.cc (__cxa_begin_cleanup): Remember a
	foreign exception too.
	(__gnu_end_cleanup): Recover a foreign exception too.
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Cope
	with forced unwinding.
	* libsupc++/eh_throw.cc (__cxxabiv1::__cxa_rethrow): Use
	_Unwind_Resume_or_Rethrow for ARM EABI.

From-SVN: r107089
2005-11-16 17:04:41 +00:00
Geoffrey Keating
f47bddec0c acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Don't check for shared libgcc for darwin exports.
* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Don't check for
	shared libgcc for darwin exports.
	* configure: Regenerate.

From-SVN: r106936
2005-11-15 04:56:34 +00:00
Paolo Carlini
81daf4baea [multiple changes]
2005-11-13  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/tr1/boost_shared_ptr.h (get_deleter):
	Declare before shared_ptr.
	(shared_ptr<>): Declare get_deleter as friend.
	(shared_ptr<>:_M_get_deleter): Private.

2005-11-13  Douglas Gregor  <doug.gregor@gmail.com>

	PR libstdc++/24818
        * include/tr1/ref_wrap_iterate.h
        (reference_wrapper::operator()()): Don't dereferene the result of
        get() before calling it; it's already a reference.
        * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc:
        Test nullary calls to reference_wrappers.

From-SVN: r106863
2005-11-13 12:14:51 +00:00
Paolo Carlini
3270a66b55 [multiple changes]
2005-11-13  Jonathan Wakely  <redi@gcc.gnu.org>

	* include/tr1/boost_shared_ptr.h (get_deleter):
	Declare before shared_ptr.
	(shared_ptr<>): Declare get_deleter as friend.
	(shared_ptr<>:_M_get_deleter): Private.

2005-11-13  Douglas Gregor  <doug.gregor@gmail.com>

	PR libstdc++/24818
        * include/tr1/ref_wrap_iterate.h
        (reference_wrapper::operator()()): Don't dereferene the result of
        get() before calling it; it's already a reference.
        * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc:
        Test nullary calls to reference_wrappers.

From-SVN: r106862
2005-11-13 12:14:15 +00:00
Paolo Carlini
516ebd4486 re PR libstdc++/24808 (is_object fails to compile with incomplete types)
2005-11-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24808
	* include/tr1/type_traits (__is_abstract_helper): Rename to __in_array
	(with complemented logic).
	(is_function): Use it, don't use __conv_helper.
	(is_abstract): Adjust.
	(__conv_helper): Rename to __is_convertible_simple.
	(is_convertible): Adjust.
	* testsuite/testsuite_tr1.h (class IncompleteClass): Add.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/is_object/
	24808.cc: New.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/
	24808.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/
	24808.cc: Likewise.

From-SVN: r106818
2005-11-12 00:19:24 +00:00
Paolo Carlini
77633f4cd0 re PR libstdc++/24799 (std::tr1::hash missing inheritance)
2005-11-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24799
	* include/tr1/functional (hash): Inherit from std::unary_function.
	* testsuite/tr1/6_containers/unordered/hash/24799.cc: New.

	PR libstdc++/24805
	* include/tr1/boost_shared_ptr.h (swap(shared_ptr<>&, shared_ptr<>&),
	swap(weak_ptr<>&, weak_ptr<>&)): Move inside namespace tr1.
	* testsuite/tr1/2_general_utilities/memory/shared_ptr/modifiers/
	24805.cc: New.

	PR libstdc++/24809
	* include/tr1/type_traits (__is_polymorhpic_helper): Adjust destructor.
	* testsuite/tr1/4_metaprogramming/type_properties/is_polymorphic/
	24809.cc: New.

From-SVN: r106796
2005-11-11 20:10:20 +00:00
Paolo Carlini
c579887923 enable_shared_from_this/not_shared.cc: Adjust, remove xfail.
2005-11-10  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/tr1/2_general_utilities/memory/
	enable_shared_from_this/not_shared.cc: Adjust, remove xfail.
	* testsuite/tr1/2_general_utilities/memory/
	enable_shared_from_this/not_shared2.cc: Likewise.
	* testsuite/tr1/2_general_utilities/memory/
	enable_shared_from_this/not_shared3.cc: Likewise.

From-SVN: r106736
2005-11-10 15:13:15 +00:00
Paolo Carlini
a15024e630 boost_shared_ptr.h (_Sp_counted_base::release, [...]): Protect barriers with __GTHREADS.
2005-11-10  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/boost_shared_ptr.h (_Sp_counted_base::release,
	weak_release): Protect barriers with __GTHREADS.

From-SVN: r106733
2005-11-10 12:03:50 +00:00
Paolo Carlini
7fd6021841 boost_shared_ptr.h (_Sp_counted_base::release): Optimize by manually inlining weak_release.
2005-11-10  Paolo Carlini  <pcarlini@suse.de>
	    Peter Dimov  <pdimov@mmltd.net>

	* include/tr1/boost_shared_ptr.h (_Sp_counted_base::release):
	Optimize by manually inlining weak_release.

	* include/tr1/boost_shared_ptr.h (_Sp_counted_base::release,
	weak_release): Use explicit memory barriers.

	

Co-Authored-By: Peter Dimov <pdimov@mmltd.net>

From-SVN: r106729
2005-11-10 10:46:27 +00:00
Benjamin Kosnik
720e2f72c3 re PR libstdc++/22203 (std::numeric_limits<int>::traps is wrong on PPC)
2005-11-09  Benjamin Kosnik  <bkoz@redhat.com>
	    Paolo Carlini  <pcarlini@suse.de>
            Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR libstdc++/22203
	* numeric_limits.cc: Split into...
	* numeric_limits/specialization.cc: ..this.
	* numeric_limits/is_iec559.cc: Same.
	* numeric_limits/sign.cc: Same.
	* numeric_limits/quiet_NaN.cc: Same.
	* numeric_limits/digits10.cc: Same.
	* numeric_limits/denorm_min.cc: Same.
	* numeric_limits/min_max.cc: Same.
	* numeric_limits/epsilon.cc: Same.
	* numeric_limits/infinity.cc: Same.
	* numeric_limits/traps.cc: New.


Co-Authored-By: Gabriel Dos Reis <gdr@integrable-solutions.net>
Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r106727
2005-11-10 02:05:13 +00:00
Paolo Carlini
8180951683 boost_shared_ptr.h: Trivial formatting fixes.
2005-11-09  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/boost_shared_ptr.h: Trivial formatting fixes.

From-SVN: r106689
2005-11-09 11:47:30 +00:00
Benjamin Kosnik
797308b2d1 libstdc++.exp (check_v3_target_debug_mode): Use exe as the executable extension.
2005-11-08  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/lib/libstdc++.exp (check_v3_target_debug_mode): Use
	exe as the executable extension.

	* acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Change gnu defaults to
	new.
	(GLIBCXX_ENABLE_PCH): Adjust message order.
	* configure: Regenerate.
	
	* scripts/testsuite_flags.in (query): Correct print_usagex typo.

	* include/bits/functexcept.h: Remove argument names.

	* src/mt_allocator.cc: Adjust comment.

From-SVN: r106665
2005-11-08 23:07:02 +00:00
Paolo Carlini
3a4983938c re PR libstdc++/18174 (documentation example for std::priority_queue usage)
2005-11-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/18174
	* include/bits/stl_queue.h (priority_queue): Tweak a bit the
	comment describing the container.

From-SVN: r106560
2005-11-06 13:07:11 +00:00
Paolo Carlini
460d832b00 configure.host: Add | rs6000 to the cpu_defines_dir switch, consistently with the try_cpu one.
2005-11-05  Paolo Carlini  <pcarlini@suse.de>

	* configure.host: Add | rs6000 to the cpu_defines_dir switch,
	consistently with the try_cpu one.

From-SVN: r106525
2005-11-05 10:00:55 +00:00
Paolo Carlini
4b90c838d2 re PR libstdc++/22203 (std::numeric_limits<int>::traps is wrong on PPC)
2005-11-05  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/22203
	* include/bits/c++config: Include cpu_defines.h.
	* include/Makefile.am: Add cpu_defines.h to host_headers.
	* configure.host: Add cpu_defines_dir.
	* configure.ac: Use it.
	* config/cpu/powerpc/cpu_defines.h: New.
	* config/cpu/generic/cpu_defines.h: Likewise.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.	
	* testsuite/Makefile.in: Likewise.

From-SVN: r106524
2005-11-05 09:42:01 +00:00
Paolo Carlini
f9c4ee6d10 sso_string_base.h (__sso_string_base<>::_M_swap): Change the various traits_type::copy call to always copy the entire local buffer...
2005-11-03  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_swap):
	Change the various traits_type::copy call to always copy the
	entire local buffer; return early and don't do a full swap on
	the lengths for two common cases; change two _S_copy to plain
	traits_type::copy.

From-SVN: r106431
2005-11-03 13:13:21 +00:00
Paolo Carlini
3d8aa000c3 [multiple changes]
2005-11-02  Thomas Kho  <tkho@ucla.edu>

	PR libstdc++/23425
	* include/bits/stl_vector.h (vector<>::clear): Open code
	in terms of _Destroy.

2005-11-02  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/vector.tcc (vector<>::_M_fill_assign): Qualify fill_n.

From-SVN: r106379
2005-11-02 10:27:54 +00:00
Paolo Carlini
2747345455 re PR libstdc++/24595 (std::tr1::get_deleter not declared)
2005-11-01  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24595
	* include/tr1/boost_shared_ptr.h (shared_ptr<>::get_deleter):
	Move out of shared_ptr.
	* testsuite/tr1/2_general_utilities/memory/shared_ptr/misc/24595.cc:
	New.

From-SVN: r106321
2005-11-01 11:01:40 +00:00
Andreas Jaeger
44bcbae366 .cvsignore are not needed for subversion, remove them.
From-SVN: r106279
2005-10-31 18:20:58 +01:00
Paolo Carlini
097588e4e4 re PR libstdc++/20213 (cassert header documentation wrong)
2005-10-30  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/20213
	* include/c_std/std_csignal.h: Adjust comment as per 17.4.1.2/4.
	* include/c_std/std_cstdlib.h: Likewise.
	* include/c_std/std_cstdio.h: Likewise.
	* include/c_std/std_cstdarg.h: Likewise.
	* include/c_std/std_cctype.h: Likewise.
	* include/c_std/std_cerrno.h: Likewise.
	* include/c_std/std_cmath.h: Likewise.
	* include/c_std/std_ciso646.h: Likewise.
	* include/c_std/std_ctime.h: Likewise.
	* include/c_std/std_clocale.h: Likewise.
	* include/c_std/std_climits.h: Likewise.
	* include/c_std/std_cassert.h: Likewise.
	* include/c_std/std_csetjmp.h: Likewise.
	* include/c_std/std_cwchar.h: Likewise.
	* include/c_std/std_cfloat.h: Likewise.
	* include/c_std/std_cstring.h: Likewise.
	* include/c_std/std_cstddef.h: Likewise.
	* include/c_std/std_cwctype.h: Likewise.

From-SVN: r106253
2005-10-30 22:21:50 +00:00
Carey Evans
f33e4b3d2e re PR libstdc++/22087 (ctype<char> tables are offset by one on DJGPP)
2005-10-29  Carey Evans  <carey.evans@gmail.com>

	PR libstdc++/22087
	* config/os/djgpp/ctype_inline.h: Fix.
	* config/os/djgpp/ctype_noninline.h: Likewise.

From-SVN: r105999
2005-10-29 22:44:23 +00:00
Paolo Carlini
fcc8559226 re PR libstdc++/24559 (Incorrect definition of wcspbrk in cwchar)
2005-10-28  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24559
	* include/c_std/std_cwchar.h (wcspbrk): Adjust signature.
	* testsuite/21_strings/c_strings/wchar_t/24559.cc: New.

From-SVN: r105939
2005-10-28 16:42:09 +00:00
Paolo Carlini
e4b600fb23 lwg-active.html, [...]: Import Revision 39.
2005-10-25  Paolo Carlini  <pcarlini@suse.de>

	* docs/html/ext/lwg-active.html, lwg-defects.html: Import Revision 39.
	* docs/html/ext/howto.html: Adjust.

From-SVN: r105884
2005-10-25 09:26:54 +00:00
Paolo Carlini
ab940869ea re PR libstdc++/24450 (Exception safety problem in messages/__timepunct)
2005-10-21  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24450
	* config/locale/generic/time_members.h (__timepunct<>::
	__timepunct(__c_locale, const char*, size_t)): Avoid leaking
	memory if new throws inside _M_initialize_timepunct.
	* config/locale/gnu/time_members.h (__timepunct<>::
	__timepunct(__c_locale, const char*, size_t)): Likewise.
	* config/locale/gnu/message_members.h (messages<>::
	messages(__c_locale, const char*, size_t)): Rearrange to
	avoid memory leaks.

From-SVN: r105729
2005-10-21 08:34:06 +00:00
Paolo Carlini
7058c3be1a sso_string_base.h (_M_swap): Rewrite.
2005-10-19  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h (_M_swap): Rewrite.

From-SVN: r105654
2005-10-20 01:07:13 +00:00
Paolo Carlini
486516b60b rc_string_base.h (_S_terminal): Remove.
2005-10-19  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/rc_string_base.h (_S_terminal): Remove.
	(_M_set_length): Adjust.
	(_S_max_size): Change to anonymous enum.
	(_M_max_size()): Add, returns the latter.
	* include/ext/sso_string_base.h: Likewise.
	* include/ext/vstring.h (max_size): Adjust.

From-SVN: r105616
2005-10-19 14:25:31 +00:00
Jonathan Wakely
7010f39ea6 re PR libstdc++/24244 (Problem with tr1::shared_ptr and pthreads_mutex_lock)
2005-10-17  Jonathan Wakely  <redi@gcc.gnu.org>

	PR libstdc++/24244
	* include/tr1/boost_shared_ptr.h (_Sp_counted_base::_Sp_counted_base()):
	When __GTHREAD_MUTEX_INIT is defined, initialize the mutex.

From-SVN: r105506
2005-10-17 17:23:42 +00:00
Paolo Carlini
48c410a254 functional: Add missing #pragma GCC system_header.
2005-10-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/functional: Add missing #pragma GCC system_header.

From-SVN: r105444
2005-10-15 19:46:58 +00:00