Commit Graph

3750 Commits

Author SHA1 Message Date
Paolo Carlini
7cf8aefccf cmath (abs(_Tp)): Add.
2009-07-23  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_std/cmath (abs(_Tp)): Add.
	* include/c_global/cmath (abs(_Tp)): Likewise.
	* testsuite/26_numerics/headers/cmath/overloads.cc: Extend.

From-SVN: r150022
2009-07-23 18:38:22 +00:00
Paolo Carlini
af4beb4b95 valarray (valarray<>::operator=(const valarray<>&), [...]): Implement resolution of DR 630, [Ready] in Frankfurt.
2009-07-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/valarray (valarray<>::operator=(const valarray<>&),
	valarray<>::operator=(initializer_list<>)): Implement resolution
	of DR 630, [Ready] in Frankfurt.
	* testsuite/26_numerics/valarray/dr630-1.cc: New.
	* testsuite/26_numerics/valarray/dr630-2.cc: Likewise.
	* doc/xml/manual/intro.xml: Add an entry for DR 630.

From-SVN: r149929
2009-07-22 12:19:58 +00:00
Paolo Carlini
513c5a5bd9 chrono (duration<>::operator%=, operator%): Add, per DR 934.
2009-07-21  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/chrono (duration<>::operator%=,  operator%):
	Add, per DR 934.
	* testsuite/20_util/duration/arithmetic/dr934-1.cc: New.
	* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.

	* include/std/chrono (operator/): Simplify implementation.

From-SVN: r149856
2009-07-21 14:48:47 +00:00
Paolo Carlini
af90c8c9ae re PR libstdc++/40712 (locale(const locale&, const char*, locale::category) can create broken locale)
2009-07-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40712
	* config/locale/gnu/numeric_members.cc (numpunct<>::
	_M_initialize_numpunct): Dynamically allocate _M_data->_M_grouping
	and copy the langinfo data into it.
	(numpunct<>::~numpunct): Free the allocated memory.
	* config/locale/gnu/monetary_members.cc (moneypunct<>::
	_M_initialize_moneypunct): Dynamically allocate _M_data->_M_grouping,
	_M_data->_M_positive_sign, _M_data->_M_negative_sign,
	_M_data->_M_curr_symbol.
	(moneypunct<>::~moneypunct): Free the allocated memory.
	* testsuite/22_locale/moneypunct/40712.cc: New.

	* include/bits/locale_facets.tcc (__numpunct_cache<>::_M_cache):
	Do not leak memory if new throws.
	* include/bits/locale_facets_nonio.tcc
	(__moneypunct_cache<>::_M_cache): Likewise.

From-SVN: r149782
2009-07-18 22:58:10 +00:00
Jason Merrill
c32097d8b4 re PR libstdc++/37907 ([c++0x] support for std::is_standard_layout)
PR libstdc++/37907
	Support std::is_standard_layout and std::is_trivial traits,
	change POD to C++0x version (except for layout).
	* gcc/c-common.c (c_common_reswords): Add __is_standard_layout
	and __is_trivial.
	* gcc/c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
	* gcc/cp/cp-tree.h (enum cp_trait_kind): Add CPTK_IS_STD_LAYOUT,
	CPTK_IS_TRIVIAL.
	(struct lang_type_class): Add non_std_layout.
	(CLASSTYPE_NON_STD_LAYOUT): New.
	* gcc/cp/class.c (check_bases): Set it.
	(check_field_decls): Likewise.
	(check_bases_and_members): Likewise.
	* gcc/cp/parser.c (cp_parser_primary_expression): Handle RID_IS_STD_LAYOUT,
	RID_IS_TRIVIAL.
	(cp_parser_trait_expr): Likewise.
	* gcc/cp/semantics.c (trait_expr_value): Handle CPTK_IS_STD_LAYOUT,
	CPTK_IS_TRIVIAL.
	(finish_trait_expr): Likewise.
	* gcc/cp/tree.c (scalarish_type_p, trivial_type_p, std_layout_type_p): New.
	(pod_type_p): Use them.
	* gcc/cp/typeck.c (build_class_member_access_expr): Check
	CLASSTYPE_NON_STD_LAYOUT rather than CLASSTYPE_NON_POD_P.
	* libstdc++-v3/include/std/type_traits: Add is_standard_layout, is_trivial.

From-SVN: r149721
2009-07-16 16:36:10 -04:00
Paolo Carlini
6f0398bb14 istream.tcc (basic_istream<>::operator>>(short&), [...]): Implement resolution of DR 696, [Ready] in Frankfurt.
2009-07-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/istream.tcc (basic_istream<>::operator>>(short&),
	basic_istream<>::operator>>(int&)): Implement resolution of DR 696,
	[Ready] in Frankfurt.
	* include/tr1_impl/regex (regex_traits<>::value): Adjust.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc:
	New.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc:
	Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
	Adjust.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc:
	Likewise.
	* doc/xml/manual/intro.xml: Add an entry for DR 696.

	* include/bits/istream.tcc: Minor clean-up to the initializers of the
	__err locals.
	* include/bits/ostream.tcc: Likewise.
	* src/compatibility.cc: Likewise.
	* src/istream.cc: Likewise.

From-SVN: r149704
2009-07-16 12:41:03 +00:00
Paolo Carlini
026ec377e9 re PR c++/36628 ([c++0x] incorrect decltype() handling of conditional operator)
2009-07-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (common_type): Remove workaround for
	PR36628, now fixed.

From-SVN: r149537
2009-07-12 23:25:29 +00:00
Janis Johnson
23862bec3e re PR libstdc++/40691 (bug in logical not operator for valarray used with slice)
PR libstdc++/40691
	* include/bugs/valarray-after.h (_Expr::operator!): Fix return type.
	* testsuite/26_numerics/valarray/40691.cc: New test.

From-SVN: r149393
2009-07-08 22:26:50 +00:00
Paolo Carlini
462ac91e72 2009-06-29 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/random.tcc
	(linear_congruential_engine<>::seed(seed_seq&)): Use uint_least32_t
	as array type.

From-SVN: r149078
2009-06-30 01:25:52 +00:00
Paolo Carlini
b94f4bef8b random.h (__mod(_Tp)): Use defaults.
2009-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.h (__mod(_Tp)): Use defaults.
	(struct _Mod): Adjust template parameters.
	(linear_congruential_engine<>::operator()()): Adjust.
	(typedef _UInt32Type): Remove.
	(mersenne_twister_engine<>::initialization_multiplier): Fix type.
	* include/bits/random.tcc (struct _Mod): Adjust template parameters.
	(linear_congruential_engine<>::seed(result_type)): Adjust __mod
	calls.
	(mersenne_twister_engine<>::seed(result_type)): Likewise.
	(mersenne_twister_engine<>::seed(seed_seq&)): Likewise.
	(subtract_with_carry_engine<>::seed(result_type)): Likewise.
	(subtract_with_carry_engine<>::seed(seed_seq&)): Likewise.
	(seed_seq::seed_seq(std::initializer_list<>)): Likewise.
	(seed_seq::seed_seq(_InputIterator, _InputIterator)): Likewise.
	(seed_seq::generate(_RandomAccessIterator, _RandomAccessIterator)):
	Likewise.

	* include/bits/random.tcc
	(mersenne_twister_engine<>::seed(result_type)): Fix i usage in the
	formula (i mod n).
	(mersenne_twister_engine<>::seed(seed_seq&)): Use uint_least32_t
	as array type.
	(subtract_with_carry_engine<>::seed(seed_seq&)): Likewise; fix array
	size.
	(subtract_with_carry_engine<>::seed(result_type)): Fix; also use
	uint_least32_t.

From-SVN: r149074
2009-06-30 00:43:21 +00:00
Jonathan Wakely
c8ee2bfd79 future (shared_future): Adjust doxygen comment.
2009-06-24  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/future (shared_future): Adjust doxygen comment.

From-SVN: r148895
2009-06-24 08:13:17 +01:00
Jonathan Wakely
27f41cfea5 re PR libstdc++/40297 ([C++0x] debug mode vs atomics)
2009-06-24  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/40297
	* include/bits/atomic_0.h: Reverse debug assertions.
	* include/bits/atomic_2.h: Likewise.

From-SVN: r148893
2009-06-24 08:06:17 +01:00
Benjamin Kosnik
3259554a05 user.cfg.in (PREDEFINED): Add _GLIBCXX_ATOMIC_BUILTINS_*.
2009-06-23  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in (PREDEFINED): Add _GLIBCXX_ATOMIC_BUILTINS_*.
	(INPUT): Add future.
	* include/std/future: Adjust markup.
	* testsuite/30_threads/shared_future/cons/assign_neg.cc: Adjust
	line numbers.
	* testsuite/30_threads/unique_future/cons/assign_neg.cc: Same.
	* testsuite/30_threads/unique_future/cons/copy_neg.cc: Same.
	* testsuite/30_threads/promise/cons/assign_neg.cc: Same.
	* testsuite/30_threads/promise/cons/copy_neg.cc: Same.

From-SVN: r148883
2009-06-23 23:24:20 +00:00
Jonathan Wakely
2ea259393d shared_ptr.h: Do not swap rvalues.
2009-06-23  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/shared_ptr.h: Do not swap rvalues.
	* testsuite/20_util/owner_less/cmp.cc: Add missing test variables.
	* testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
	* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
	* testsuite/20_util/tuple/swap.cc: Likewise.

From-SVN: r148880
2009-06-23 23:33:17 +01:00
Jonathan Wakely
79e2c7b01c macros.h: Replace @tbd with valid doxygen tag @todo.
2009-06-23  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/debug/macros.h: Replace @tbd with valid doxygen tag @todo.
	* include/std/ratio: Typo in comment.

From-SVN: r148861
2009-06-23 18:51:48 +01:00
Paolo Carlini
7309083f99 re PR libstdc++/40518 (data races when calling std::string::erase() on empty string)
2009-06-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40518
	* include/bits/basic_string.h (basic_string<>::_Rep::
	_M_set_length_and_sharable): Do not write the empty rep.
	(basic_string<>::erase(iterator, iterator)): Likewise,
	move out of line...
	* include/bits/basic_string.tcc: ... here.

From-SVN: r148850
2009-06-23 12:36:43 +00:00
Jonathan Wakely
c910ceff6a future: New.
2009-06-21  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/future: New.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.
	* src/future.cc: New.
	* src/Makefile.am: Add.
	* src/Makefile.in: Regenerate.
	* config/abi/pre/gnu.ver: Add export.
	* testsuite/30_threads/headers/future/std_c++0x_neg.cc: New.
	* testsuite/30_threads/headers/future/types_std_c++0x.cc: New.
	* testsuite/30_threads/packaged_task/cons/1.cc: New.
	* testsuite/30_threads/packaged_task/cons/2.cc: New.
	* testsuite/30_threads/packaged_task/cons/assign_neg.cc: New.
	* testsuite/30_threads/packaged_task/cons/copy_neg.cc: New.
	* testsuite/30_threads/packaged_task/cons/move_assign.cc: New.
	* testsuite/30_threads/packaged_task/cons/move.cc: New.
	* testsuite/30_threads/packaged_task/members/boolconv.cc: New.
	* testsuite/30_threads/packaged_task/members/get_future.cc: New.
	* testsuite/30_threads/packaged_task/members/get_future2.cc: New.
	* testsuite/30_threads/packaged_task/members/invoke.cc: New.
	* testsuite/30_threads/packaged_task/members/invoke2.cc: New.
	* testsuite/30_threads/packaged_task/members/invoke3.cc: New.
	* testsuite/30_threads/packaged_task/members/invoke4.cc: New.
	* testsuite/30_threads/packaged_task/members/invoke5.cc: New.
	* testsuite/30_threads/packaged_task/members/reset.cc: New.
	* testsuite/30_threads/packaged_task/members/reset2.cc: New.
	* testsuite/30_threads/packaged_task/members/swap.cc: New.
	* testsuite/30_threads/packaged_task/requirements/
	explicit_instantiation.cc: New.
	* testsuite/30_threads/promise/cons/1.cc: New.
	* testsuite/30_threads/promise/cons/assign_neg.cc: New.
	* testsuite/30_threads/promise/cons/copy_neg.cc: New.
	* testsuite/30_threads/promise/cons/move_assign.cc: New.
	* testsuite/30_threads/promise/cons/move.cc: New.
	* testsuite/30_threads/promise/members/get_future.cc: New.
	* testsuite/30_threads/promise/members/get_future2.cc: New.
	* testsuite/30_threads/promise/members/set_exception.cc: New.
	* testsuite/30_threads/promise/members/set_exception2.cc: New.
	* testsuite/30_threads/promise/members/set_value.cc: New.
	* testsuite/30_threads/promise/members/set_value2.cc: New.
	* testsuite/30_threads/promise/members/set_value3.cc: New.
	* testsuite/30_threads/promise/members/swap.cc: New.
	* testsuite/30_threads/promise/requirements/
	explicit_instantiation.cc: New.
	* testsuite/30_threads/shared_future/cons/assign_neg.cc: New.
	* testsuite/30_threads/shared_future/cons/copy.cc: New.
	* testsuite/30_threads/shared_future/cons/default_neg.cc: New.
	* testsuite/30_threads/shared_future/cons/move.cc: New.
	* testsuite/30_threads/shared_future/members/get.cc: New.
	* testsuite/30_threads/shared_future/members/get2.cc: New.
	* testsuite/30_threads/shared_future/members/has_exception.cc: New.
	* testsuite/30_threads/shared_future/members/has_value.cc: New.
	* testsuite/30_threads/shared_future/members/is_ready.cc: New.
	* testsuite/30_threads/shared_future/members/wait.cc: New.
	* testsuite/30_threads/shared_future/members/wait_for.cc: New.
	* testsuite/30_threads/shared_future/members/wait_until.cc: New.
	* testsuite/30_threads/shared_future/requirements/
	explicit_instantiation.cc: New.
	* testsuite/30_threads/unique_future/cons/assign_neg.cc: New.
	* testsuite/30_threads/unique_future/cons/copy_neg.cc: New.
	* testsuite/30_threads/unique_future/cons/default_neg.cc: New.
	* testsuite/30_threads/unique_future/cons/move.cc: New.
	* testsuite/30_threads/unique_future/members/get.cc: New.
	* testsuite/30_threads/unique_future/members/get2.cc: New.
	* testsuite/30_threads/unique_future/members/has_exception.cc: New.
	* testsuite/30_threads/unique_future/members/has_value.cc: New.
	* testsuite/30_threads/unique_future/members/is_ready.cc: New.
	* testsuite/30_threads/unique_future/members/wait.cc: New.
	* testsuite/30_threads/unique_future/members/wait_for.cc: New.
	* testsuite/30_threads/unique_future/members/wait_until.cc: New.
	* testsuite/30_threads/unique_future/requirements/
	explicit_instantiation.cc: New.
	* testsuite/performance/30_threads/future/polling.cc: New.

From-SVN: r148765
2009-06-21 15:02:09 +01:00
Paolo Carlini
1a9e603e52 2009-06-20 Paolo Carlini <paolo.carlini@oracle.com>
* Revert last Change.

From-SVN: r148756
2009-06-21 00:57:56 +00:00
Paolo Carlini
2271f9c260 re PR libstdc++/40497 ([C++0x] troubles with std::next / std::prev declarations)
2009-06-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40497
	* include/bits/stl_iterator_base_funcs.h (next, prev): Fix the
	signature per the current C++1x draft (N2857).
	* testsuite/24_iterators/operations/40497.cc: Add.

From-SVN: r148751
2009-06-20 22:27:04 +00:00
Paolo Carlini
9b88236b34 random.h (_Adaptor): Simplify for _DInputType always a floating point type.
2009-06-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.h (_Adaptor): Simplify for _DInputType always
	a floating point type.
	(uniform_int_distribution<>::uniform_int_distribution(_IntType,
	_IntType)): Fix second default argument.
	(uniform_int_distribution<>::_M_call): Remove.
	(uniform_int_distribution<>::operator()(_UniformRandomNumberGenerator&,
	const param_type&)): Only declare.
	* include/bits/random.tcc (uniform_int_distribution<>::_M_call(
	_UniformRandomNumberGenerator&, result_type, result_type, true_type):
	Remove.
	uniform_int_distribution<>::operator()(_UniformRandomNumberGenerator&,
	const param_type&): Define here.
	(geometric_distribution<>::operator()(_UniformRandomNumberGenerator&,
	const param_type&), discrete_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&), 
	piecewise_constant_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&),
	piecewise_linear_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&)): Use double as
	the second template argument of _Adaptor.
	* testsuite/26_numerics/random/uniform_int_distribution/cons/
	default.cc: Adjust.

From-SVN: r148720
2009-06-19 17:49:31 +00:00
Paolo Carlini
f8dd9e0de0 random.tcc (discrete_distribution<>::param_type:: param_type(size_t, double, double, _Func), [...]): Tidy.
2009-06-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.tcc (discrete_distribution<>::param_type::
      	param_type(size_t, double, double, _Func),
	discrete_distribution<>::operator()(_UniformRandomNumberGenerator&,
	const param_type&)): Tidy.
	(piecewise_constant_distribution<>::param_type::_M_initialize):
	Use reserve, fix.
	(piecewise_constant_distribution<>::param_type::
	param_type(initializer_list<>, _Func),
	piecewise_constant_distribution<>::param_type::
	param_type(size_t, _RealType, _RealType, _Func),
       	piecewise_linear_distribution<>::param_type::
	param_type(initializer_list<>, _Func),
       	piecewise_linear_distribution<>::param_type::
	param_type(size_t, _RealType, _RealType, _Func)): Use reserve, tidy.
	(piecewise_constant_distribution<>::param_type::
	param_type(_InputIteratorB, _InputIteratorB, _InputIteratorW),
	piecewise_constant_distribution<>::
	operator()(_UniformRandomNumberGenerator&, const param_type&),
      	piecewise_linear_distribution<>::
	operator()(_UniformRandomNumberGenerator&, const param_type&)): Fix.
	(operator>>(std::basic_istream<>&,
	piecewise_constant_distribution<>&),
	operator>>(std::basic_istream<>&, piecewise_linear_distribution<>&)):
	Use reserve.
	* include/bits/random.h: Minor cosmetic changes.

From-SVN: r148719
2009-06-19 17:17:14 +00:00
Jonathan Wakely
cd3b0fafaa thread (~thread(), [...]): Call terminate if joinable.
2009-06-16  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/thread (~thread(), operator=(thread&&)): Call terminate
	if joinable.

From-SVN: r148552
2009-06-16 21:34:43 +01:00
Paolo Carlini
f9b09dec19 random.tcc (negative_binomial_distribution<>::operator() (_UniformRandomNumberGenerator&, const param_type&): Tweak to use a class member gamma_distribution.
2009-06-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.tcc
	(negative_binomial_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&): Tweak to use a
	class member gamma_distribution.
	(negative_binomial_distribution<>::operator()
	(_UniformRandomNumberGenerator&)): Implement out of line here.
	(operator<<(basic_ostream<>&, negative_binomial_distribution<>),
	operator>>(basic_ostream<>&, negative_binomial_distribution<>): Adjust.
	(student_t_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&): Move inline,
	simplify.
	(operator<<(basic_ostream<>&, student_t_distribution<>),
	operator>>(basic_ostream<>&, student_t_distribution<>): Adjust.
	(chi_squared_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&): Move inline,
	tweak to use a class member gamma_distribution.
	(operator<<(basic_ostream<>&, chi_squared_distribution<>),
	operator>>(basic_ostream<>&, chi_squared_distribution<>): Adjust.
	(fisher_f_distribution<>::operator() (_UniformRandomNumberGenerator&,
	const param_type&): Move inline, tweak to use class member
	gamma_distributions.
	(operator<<(basic_ostream<>&, fisher_f_distribution<>),
	operator>>(basic_ostream<>&, fisher_f_distribution<>): Adjust.
	* include/bits/random.h: Adjust, minor tweaks.

From-SVN: r148393
2009-06-11 18:32:30 +00:00
Benjamin Kosnik
fd9380a6cd move.h: Doxygen group fixes.
2009-06-09  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/move.h: Doxygen group fixes.

From-SVN: r148337
2009-06-10 02:14:32 +00:00
Paolo Carlini
b01630bb3d random.tcc (gamma_distribution<>::operator() (_UniformRandomNumberGenerator&, const param_type&): Redo, using the Marsaglia/Tsang algorithm.
2009-06-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.tcc (gamma_distribution<>::operator()
	(_UniformRandomNumberGenerator&, const param_type&): Redo, using
	the Marsaglia/Tsang algorithm.
	(gamma_distribution<>::param_type::_M_initialize): Adjust.
	(operator<<(basic_ostream<>&, gamma_distribution<>),
	operator>>(basic_ostream<>&, gamma_distribution<>): Likewise.

	* include/bits/random.tcc(student_t_distribution<>::_M_gaussian):
	Remove, just use normal_distribution.
	(operator<<(basic_ostream<>&, student_t_distribution<>),
	operator>>(basic_ostream<>&, student_t_distribution<>): Adjust.
	(linear_congruential_engine<>::operator()()): Move inline.
	(lognormal_distribution<>::operator()(_UniformRandomNumberGenerator&,
	const param_type&)): Move inline, just use normal_distribution.
	(operator<<(basic_ostream<>&, lognormal_distribution<>),
	operator>>(basic_ostream<>&, lognormal_distribution<>): Adjust.
	(weibull_distribution<>::operator()(_UniformRandomNumberGenerator&,
	const param_type&)): Move here, out of line.
	(piecewise_constant_distribution<>::param_type::param_type()): Move
	inline.
	* include/bits/random.h: Adjust, minor tweaks.

From-SVN: r148276
2009-06-08 14:38:48 +00:00
Benjamin Kosnik
5580c6e729 throw_allocator.h: Rework.
2009-06-04  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/throw_allocator.h: Rework.
	* include/ext/pb_ds/detail/debug_map_base.hpp: Adjust usage.
	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Same.
	* testsuite/23_containers/list/modifiers/insert/25288.cc: Same.
	* testsuite/util/regression/rand/priority_queue/
	container_rand_regression_test.tcc: Inline functions.
	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.tcc: Same.

From-SVN: r148204
2009-06-05 08:45:26 +00:00
Paolo Carlini
a67b92c3d7 re PR libstdc++/40299 (Rope + C++0x mode = build error)
2009-06-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40299
	* include/ext/memory: Fully qualify calls with __gnu_cxx.
	* testsuite/ext/rope/40299.cc: New.

From-SVN: r148081
2009-06-02 09:06:31 +00:00
Benjamin Kosnik
626e0599af re PR libstdc++/40273 ([C++0x] Invalid conversion to bool is reported)
2009-05-27  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/40273
	* include/tr1_impl/functional: Add explicit cast.
	* testsuite/20_util/function/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/function/null_pointer_comparisons.cc: New.

From-SVN: r147930
2009-05-27 20:32:30 +00:00
Benjamin Kosnik
e4c29fbc9e re PR bootstrap/40221 (Powerpc bootstrap is broken in building libstdc++)
2009-05-21  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/40221
	* include/tr1_impl/functional: Add explicit cast.

From-SVN: r147794
2009-05-22 07:19:37 +00:00
Paolo Carlini
e2792913bd re PR libstdc++/40094 (FAIL: ext/throw_allocator/deallocate_global.cc execution test)
2009-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
	
	PR libstdc++/40094
	Revert:
	2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
	* include/ext/throw_allocator.h (throw_allocator_base): Avoid
	out of line member functions definitions.
	(throw_allocator_base::_S_g, _S_map, _S_throw_prob, _S_label):
	Remove, use static locals instead.
	(throw_allocator_base::do_check_allocated, print_to_string): Declare.
	* src/throw_allocator.cc: New.
	* src/Makefile.am: Add.
	* config/abi/pre/gnu.ver: Add exports.
	* src/Makefile.in: Regenerate.

From-SVN: r147788
2009-05-22 01:28:50 +00:00
Benjamin Kosnik
d29d4507b2 functional (function): Use explicit operator bool.
2009-05-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/tr1_impl/functional (function): Use explicit operator bool.
	* include/bits/shared_ptr.h (__shared_ptr): Same.
	* include/bits/unique_ptr.h (unique_ptr): Same.
	* include/std/mutex (unique_lock): Same.
	* include/std/system_error (error_code): Same.
	(error_condition): Same.
	* include/std/ostream (sentry): Same.
	* include/std/istream (sentry): Same.
	* testsuite/19_diagnostics/error_condition/operators/bool.cc: Adjust.
	* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/bool.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same.
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same.
	* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Same.
	* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Same.

From-SVN: r147756
2009-05-21 01:12:00 +00:00
Paolo Carlini
c8036448d1 re PR libstdc++/40184 (locale(const char* std_name) can create invalid facets for nonuniform locale)
2009-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40184
	* include/bits/locale_classes.h (locale::facet::_S_lc_ctype_c_locale):
	Declare...
	* config/locale/gnu/c_locale.cc: ... and define.
	* config/locale/generic/c_locale.cc: Define.
	* src/localename.cc (locale::_Impl::_Impl(const char*, size_t)):
	Use it.
	* testsuite/22_locale/locale/cons/40184.cc: New.

From-SVN: r147714
2009-05-19 18:20:47 +00:00
Paolo Carlini
cf0e6fff1d re PR c++/40192 (Unable to use std::vector with typedef'd array types)
2009-05-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40192
	* include/bits/stl_construct.h (struct _Destroy_aux): Add.
	(_Destroy(_ForwardIterator, _ForwardIterator)): Use the latter.
	* testsuite/23_containers/vector/40192.cc: New.

From-SVN: r147680
2009-05-18 23:16:20 +00:00
Jonathan Wakely
ff74fd1325 stl_pair.h (swap): Do not swap rvalues.
2009-05-18  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/stl_pair.h (swap): Do not swap rvalues.
	* include/bits/stl_deque.h (swap): Likewise.
	* include/bits/stl_list.h (swap): Likewise.
	* include/bits/stl_vector.h (swap): Likewise.
	* include/bits/stl_bvector.h (swap): Likewise.
	* include/bits/stl_queue.h (swap): Likewise.
	* include/bits/stl_stack.h (swap): Likewise.
	* include/bits/stl_tree.h (swap): Likewise.
	* include/bits/stl_map.h (swap): Likewise.
	* include/bits/stl_multimap.h (swap): Likewise.
	* include/bits/stl_set.h (swap): Likewise.
	* include/bits/stl_multiset.h (swap): Likewise.
	* include/bits/forward_list.h (swap): Likewise.
	* include/bits/unique_ptr.h (swap): Likewise.
	* include/debug/deque (swap): Likewise.
	* include/debug/list (swap): Likewise.
	* include/debug/vector (swap): Likewise.
	* include/debug/map.h (swap): Likewise.
	* include/debug/multimap.h (swap): Likewise.
	* include/debug/set.h (swap): Likewise.
	* include/debug/multiset.h (swap): Likewise.
	* include/debug/unordered_map (swap): Likewise.
	* include/debug/unordered_set (swap): Likewise.
	* include/ext/vstring.h (swap): Likewise.
	* include/tr1_impl/unordered_map (swap): Likewise.
	* include/tr1_impl/hashtable (swap): Likewise.
	* include/tr1_impl/unordered_set (swap): Likewise.
	* include/std/tuple (swap): Likewise.
	* include/std/mutex (swap): Likewise.
	* include/std/thread (swap): Likewise.
	(operator<<): Only output to lvalue streams.
	* testsuite/20_util/shared_ptr/modifiers/swap_rvalue.cc: Remove.
	* testsuite/23_containers/headers/forward_list/synopsis.cc: Adjust.
	* testsuite/23_containers/deque/requirements/dr438/
	assign_neg.cc: Adjust line numbers.
	* 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/deque/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	assign_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/list/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	assign_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/vector/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/30_threads/thread/swap/1.cc: Swap with lvalue and also
	test non-member swap.
	* testsuite/30_threads/thread/swap/2.cc: Remove.

From-SVN: r147678
2009-05-18 23:15:56 +01:00
Jonathan Wakely
5c64575096 mutex: Move std::lock_error to ...
2009-05-13  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/mutex: Move std::lock_error to ...
	* src/compatibility.cc: Here.
	* src/mutex.cc: Likewise.
	* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Add checks
	for lock types and remove std::lock_error check.

From-SVN: r147609
2009-05-16 11:09:02 +01:00
Paolo Carlini
0f136367bc re PR libstdc++/40160 (-fno-rtti vs _GLIBCXX_DEBUG)
2009-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40160
	* include/debug/formatter.h (_Parameter::_Parameter): Don't use
	typeid when __GXX_RTTI is undefined.
	* src/debug.cc (_Error_formatter::_Parameter::_M_print_field): Adjust
	for null _M_variant._M_iterator._M_type,
	_M_variant._M_iterator._M_seq_type, _M_variant._M_sequence._M_type.
	* testsuite/21_strings/basic_string/40160.cc: New.

From-SVN: r147599
2009-05-15 22:25:24 +00:00
Paolo Carlini
6855fe452e re PR libstdc++/40123 (Revision 147395 failed libstc++ tests)
2009-05-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40123
	* random.tcc (independent_bits_engine<>::operator()()): Use
	result_type(1), not 1UL.

	* random.tcc (independent_bits_engine<>::operator()()): Use _M_b.max()
	and _M_b.min(), instead of this->max() and this->min().

	* random.h (_ShiftMin1): Remove, adjust everywhere.

	* random.tcc: Minor cosmetic changes.

From-SVN: r147538
2009-05-14 17:56:17 +00:00
Paolo Carlini
e1a0296342 random.tcc (cauchy_distribution<>:: operator()(_UniformRandomNumberGenerator&, const param_type&)): Avoid M_PI, a glibc extension.
2009-05-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.tcc (cauchy_distribution<>::
	operator()(_UniformRandomNumberGenerator&, const param_type&)): 
	Avoid M_PI, a glibc extension.

From-SVN: r147521
2009-05-14 08:14:54 +00:00
Ben Elliston
d68646978c Makefile.am (PCHFLAGS): Remove -Winvalid-pch.
* include/Makefile.am (PCHFLAGS): Remove -Winvalid-pch.
	* include/Makefile.in: Likewise.

From-SVN: r147459
2009-05-13 10:17:09 +10:00
Paolo Carlini
29e357fd7c throw_allocator.h: Remove redundante include.
2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/throw_allocator.h: Remove redundante include.

From-SVN: r147265
2009-05-08 00:49:35 +00:00
Paolo Carlini
9fcf9c24a1 throw_allocator.h (throw_allocator_base): Avoid out of line member functions definitions.
2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/throw_allocator.h (throw_allocator_base): Avoid
	out of line member functions definitions.
	(throw_allocator_base::_S_g, _S_map, _S_throw_prob, _S_label):
	Remove, use static locals instead.
	(throw_allocator_base::do_check_allocated, print_to_string): Declare.
	* src/throw_allocator.cc: New.
	* src/Makefile.am: Add.
	* config/abi/pre/gnu.ver: Add exports.
	* src/Makefile.in: Regenerate.

From-SVN: r147264
2009-05-08 00:39:28 +00:00
Johannes Singler
c8ecfecfd4 re PR libstdc++/39546 (parallel mode doesn't support implicit string conversion)
2009-05-06  Johannes Singler  <singler@ira.uka.de>

        PR libstdc++/39546
        * include/parallel/algo.h (find_switch):
        Parametrize binder2nd with const T& instead of T.
        * testsuite/25_algorithms/find/39546.cc: new test case

From-SVN: r147169
2009-05-06 11:20:35 +00:00
Jonathan Wakely
efdb734755 re PR libstdc++/39909 (non-TLS version of std::call_once causes terminate)
2009-05-05  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/39909
	* include/std/mutex (__get_once_functor_lock, __get_once_mutex,
	__set_once_functor_lock_ptr): Replace global lock object with local
	locks on global mutex.
	* src/mutex.cc (__get_once_functor_lock, __get_once_mutex,
	__set_once_functor_lock_ptr): Likewise, keeping old function to
	preserve ABI.
	(__once_proxy): Use pointer to local lock if set, global lock
	otherwise.
	* config/abi/pre/gnu.ver: Add new symbols to new ABI version.
	* testsuite/util/testsuite_abi.cc: Add GLIBCX_3.4.12 version.
	* testsuite/30_threads/call_once/39909.cc: New.

From-SVN: r147137
2009-05-05 22:32:38 +01:00
Jan Hubicka
b91cc3b9dc settings.h (get): Mark const.
* include/parallel/settings.h (get): Mark const.
	* libsupc++/unwind-cxx.h (__cxa_call_terminate): Mark throw ().
	* libsupc++/eh_call.cc (__cxa_call_terminate): Mark throw ().
	* config/io/basic_file_stdio.cc (sys_open, is_open, fd, seekoff): Mark
	throw ().
	* config/io/basic_file_stdio.h (__basic_file, sys_open): Mark throw ().
	(is_open, fd): Mark pure and throw ().
	(seekoff): Mark throw ().

From-SVN: r147077
2009-05-03 16:51:50 +00:00
Jan Hubicka
25195e8264 functional_hash.h (explicit specializations of () operator): Mark pure.
* include/tr1_impl/functional_hash.h (explicit specializations of ()
	operator): Mark pure.

From-SVN: r147062
2009-05-02 13:22:49 +00:00
Paolo Carlini
cca36d72b9 2009-04-26 Paolo Carlini <paolo.carlini@oracle.com>
Revert the last commit.

From-SVN: r146796
2009-04-26 10:12:08 +00:00
Jonathan Wakely
afdb7762cb mutex (__get_once_functor_lock, [...]): Replace global lock object with local locks on global mutex.
2009-04-25  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/mutex (__get_once_functor_lock, __get_once_mutex):
	Replace global lock object with local locks on global mutex.
	* src/mutex.cc: Likewise.
	* config/abi/pre/gnu.ver: Adjust.
	* testsuite/30_threads/call_once/call_once2.cc: New.

From-SVN: r146785
2009-04-25 21:14:27 +01:00
Paolo Carlini
bb81f9a082 re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist)
2009-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39880
	PR libstdc++/39881
	PR libstdc++/39882
	* include/std/system_error (is_error_code_enum<errc>): Remove.
	(error_condition<>::error_condition(_ErrorCodeEnum,)
	error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition.
	(error_code<>::error_code(_ErrorCodeEnum,),
	error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code.
	* testsuite/19_diagnostics/system_error/39880.cc: New.
	* testsuite/19_diagnostics/error_condition/modifiers/39881.cc:
	Likewise.
	* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
	* testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
	* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc:
	Adjust.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc:
	Likewise.
	* testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
	Likewise.
	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.

From-SVN: r146780
2009-04-25 19:00:52 +00:00
Jan Hubicka
e762c6f4c6 array (at): Do not use builtin_expect.
* include/tr1_impl/array (at): Do not use builtin_expect.
	* include/ext/throw_allocator.h (allocate): Likewise.
	* include/ext/pool_allocator.h (allocate): Likweise.
	* include/ext/bitmap_allocator.h (allocate): Likewise.
	* include/ext/rc_string_base.h (_S_construct): Likewise.
	* include/ext/malloc_allocator.h (allocate): Likewise.
	* include/ext/mt_allocator.h (allocate): Likewise.
	* include/ext/sso_string_base.h (_M_construct): Likewise.
	* include/bits/basic_string.tcc (_S_construct): Likewise.

From-SVN: r146681
2009-04-24 09:35:19 +00:00
Jan Hubicka
1cae1c5fc0 cstdlib (abort, [...]): Mark noreturn throw ().
* include/c_std/cstdlib (abort, exit, _Exit): Mark noreturn throw ().
	(atexit, atoll, stroll, strtoull): Mark throw ()
	* include/c_std/cstdio (snprintf, vsnprintf, vscanf): Mark throw ().
	* include/c_std/cwchar (wcstold, wcstoll, wcstoull): Mark throw ().
	* include/c_global/cstdlib (abort, exit, _Exit): Mark noreturn throw ().
	(atexit, atoll, stroll, strtoull): Mark throw ()
	* include/c_global/cstdio (snprintf, vsnprintf, vscanf): Mark throw ().
	* include/c_wchar/cstdio (snprintf, vsnprintf, vscanf): Mark throw ().

From-SVN: r146604
2009-04-22 17:41:33 +00:00