Commit Graph

53 Commits

Author SHA1 Message Date
Jason Merrill a2e70335e2 re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)
PR c++/50500
	DR 1082
	* class.c (type_has_user_declared_move_constructor): New.
	(type_has_user_declared_move_assign): New.
	(add_implicitly_declared_members): Add lazy copy ops
	even if there's a move.
	* method.c (lazily_declare_fn): Delete implicit copies
	if there's a move.
	(maybe_explain_implicit_delete): Explain this.  Use inform rather
	than error.
	* cp-tree.h: Declare new fns.

From-SVN: r180159
2011-10-18 13:39:15 -04:00
Paolo Carlini fae3f4598a tuple (make_tuple, [...]): Declare constexpr.
2011-09-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (make_tuple, forward_as_tuple): Declare constexpr.
	(_Tuple_impl<>::_Tuple_impl(_Tuple_impl<>&&)): Likewise.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Enable
	make_tuple test.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line number.

From-SVN: r178904
2011-09-16 00:41:33 +00:00
Daniel Krugler 9480716c80 tuple (_Head_base<>::_M_head, [...]): Change to static constexpr functions; adjust everywhere.
2011-09-12  Daniel Krugler  <daniel.kruegler@googlemail.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (_Head_base<>::_M_head, _Head_base<>::_M_tail,
	_Tuple_impl<>::_M_head, _Tuple_impl<>::_M_tail): Change to static
	constexpr functions; adjust everywhere.
	(__get_helper, get): Declare constexpr all three overloads.
	(tuple_cat): Declare constexpr; use late return type to improve
	error messages.
	* include/std/utility (__pair_get<>::__get, __pair_get<>::__move_get,
	__pair_get<>::__const_get, get): Declare all constexpr.
	* include/std/array (get): Likewise.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Re-enable
	tuple_cat test.
	* testsuite/23_containers/array/constexpr_get.cc: New.
	* testsuite/20_util/tuple/element_access/constexpr_get.cc: Likewise.
	* testsuite/20_util/pair/constexpr_get.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r178799
2011-09-13 00:06:25 +00:00
Benjamin Kosnik a7d0c94ef1 tuple (_Tuple_impl::_M_head, _M_tail): Mark constexpr.
2011-09-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/tuple (_Tuple_impl::_M_head, _M_tail): Mark constexpr.
	(tuple(tuple&&)): Same.
	(tuple(const tuple<_UElements...>& __in)): Same.
	(tuple(tuple<_UElements...>&& __in)): Same.
	(tuple_cat(const tuple<_TElements...>&, const tuple<_UElements...>&)):
	Same.
	(get): Same.
	* include/std/array: Consolidate array::data usage.
	* testsuite/23_containers/array/requirements/constexpr_functions.cc:
	Remove extra include.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: New.
	* testsuite/20_util/tuple/cons/constexpr-2.cc: Add tests.
	* testsuite/20_util/tuple/cons/constexpr-3.cc: Same.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line numbers.

From-SVN: r178620
2011-09-07 00:17:09 +00:00
Paolo Carlini b671737962 stl_iterator.h (make_move_iterator): Implement DR2061.
2011-08-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_iterator.h (make_move_iterator): Implement DR2061.
	* testsuite/24_iterators/move_iterator/dr2061.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line numbers.

From-SVN: r178330
2011-08-30 15:34:50 +00:00
Benjamin Kosnik 2c4caf0ab9 tuple: Mark more constructors constexpr.
2011-08-03  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/tuple: Mark more constructors constexpr.
	* testsuite/20_util/tuple/cons/constexpr.cc: Split into and extend as:
	* testsuite/20_util/tuple/cons/constexpr-2.cc: ...this.
	* testsuite/20_util/tuple/cons/constexpr-3.cc: ... and this.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line numbers.

2011-08-03  Benjamin Kosnik  <bkoz@redhat.com>
	    François Dumont  <francois.cppdevs@free.fr>

	* testsuite/23_containers/array/at_neg.cc: Move...
	* testsuite/23_containers/array/at.cc: ...here. Remove
	-fno-exceptions, call const at member function.


Co-Authored-By: François Dumont <francois.cppdevs@free.fr>

From-SVN: r177299
2011-08-03 21:05:14 +00:00
Jeffrey Yasskin ce77c22f1b Propagate the source location of a template's function_decl to the template_decl built out of it.
Propagate the source location of a template's function_decl to the
template_decl built out of it.  Without this, specializations
generated before the template was defined get the location of the
closing ')' instead of the location of the template's name, which can
produce inconsistent locations between translation units, which makes
gold's ODR checker unhappy.

	* gcc/cp/pt.c (build_template_decl): Copy the function_decl's source
	location to the new template_decl.
	* gcc/testsuite/g++.old-deja/g++.pt/crash60.C: Updated.
	* libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Updated.

From-SVN: r176845
2011-07-27 18:38:48 +00:00
Daniel Krugler 6f17ef336c tuple (__conv_types, [...]): Add.
2011-06-20  Daniel Krugler  <daniel.kruegler@googlemail.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (__conv_types, __one_by_one_convertible,
	__all_convertible): Add.
	(tuple): Use the latter.
	(tuple<_T1>): Remove.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r175204
2011-06-20 11:05:45 +00:00
Paolo Carlini 6a97dbf748 valarray (~valarray): Use noexcept.
2011-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/valarray (~valarray): Use noexcept.
	* include/bits/unique_ptr.h (~unique_ptr): Likewise.
	* testsuite/26_numerics/valarray/noexcept_move_construct.cc: New.
	* testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
	Likewise.

From-SVN: r175039
2011-06-14 17:48:29 +00:00
Paolo Carlini dd7b175ec3 type_traits (__or_, __and_): Add trivial definitions for a single element.
2011-05-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (__or_, __and_): Add trivial definitions
	for a single element.
	* include/bits/stl_pair.h: Use __and_ in noexcept specs and
	constraints.
	(pair<>::pair(pair&&)): Define.
	(pair<>::pair(const pair<>&)): Constrain with is_convertible.
	(pair<>::pair(pair<>&&)): Likewise, remove noexcept.
	* include/std/tuple: Use __and_ in noexcept specs and constraints.
	(_Tuple_impl<>::_Tuple_impl(allocator_arg_t, const _Alloc&,
	_Tuple_impl&&)): Remove noexcept.
	(tuple<>::tuple(_UElements&&...), tuple(const tuple<_UElements...>&),
	tuple(tuple<_UElements...>&&), tuple(const pair<_U1, _U2>&),
	tuple(pair<_U1, _U2>&&)): Constrain with is_convertible.
	* testsuite/20_util/tuple/moveable2.cc: Use = delete.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Adjust dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r174464
2011-05-31 02:29:22 +00:00
Paolo Carlini 283e624c9f re PR libstdc++/49236 (FAIL: 20_util/weak_ptr/comparison/cmp_neg.cc)
2011-05-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/49236
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line number.

From-SVN: r174455
2011-05-30 21:14:01 +00:00
Paolo Carlini 2789f415a1 char_traits.h: Use noexcept throughout.
2011-05-20  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/char_traits.h: Use noexcept throughout.
	* include/std/typeindex: Likewise.

	* include/std/tuple (_Tuple_impl<>_Tuple_impl(_Tuple_impl&&)): Use
	noexcept; adjust callers.
	* include/bits/stl_pair.h (pair<>::pair(pair<>&&)): Use noexcept.
	* testsuite/20_util/tuple/cons/noexcept_move_construct.cc: New.
	* testsuite/20_util/pair/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/20_util/pair/noexcept_swap.cc: Likewise.
	* testsuite/20_util/pair/noexcept_move_assign.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line numbers.

From-SVN: r173986
2011-05-21 00:05:03 +00:00
Paolo Carlini 664e12c126 tuple (tuple_element<__i, [...]): Add.
2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (tuple_element<__i, const _Tp>,
	tuple_element<__i, volatile _Tp>, tuple_element<__i,
	const volatile _Tp>, tuple_size<const _Tp>, tuple_size<volatile _Tp>,
	tuple_size<const volatile _Tp>): Add.
	* include/std/utility (tuple_size<std::pair<_Tp1, _Tp2>>): Tweak.
	* include/std/array (tuple_size<array<_Tp, _Nm>>): Likewise.
	* testsuite/20_util/tuple/cv_tuple_size.cc: New.
	* testsuite/20_util/tuple/cv_tuple_element.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-warning
	line number.

From-SVN: r173919
2011-05-19 20:48:39 +00:00
Paolo Carlini 173f26ae56 tuple (tuple<>::operator=(tuple&&)): Specify as noexcept.
2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (tuple<>::operator=(tuple&&)): Specify as
        noexcept.
	(__get_helper): Likewise.
	(_Head_base<>::_M_head, _Tuple_impl<>::_M_head, _M_tail): Likewise.
	* include/bits/move.h (swap): Likewise.
	* include/bits/algorithmfwd.h (swap): Adjust.
	* include/bits/stl_pair.h (pair<>::operator=(pair&&)): Spec noexcept.
	* testsuite/util/testsuite_allocator.h (uneq_allocator): In C++0x
	mode, prefer delete to access control to make the type not copy
	assignable.
	* testsuite/util/testsuite_tr1.h: Add test classes.
	* testsuite/20_util/tuple/noexcept_swap.cc: New.
	* testsuite/20_util/tuple/noexcept_move_assign.cc: Likewise.
	* testsuite/25_algorithms/reverse/moveable.cc: Likewise, prefer
	delete to access control.
	* testsuite/25_algorithms/swap_ranges/moveable.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line numbers.

From-SVN: r173917
2011-05-19 17:20:22 +00:00
Jonathan Wakely cf70f97b95 shared_ptr_base.h: Use noexcept.
2011-05-18  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/shared_ptr_base.h: Use noexcept. Define special member
	functions as defaulted/deleted.
	* include/bits/shared_ptr.h: Use noexcept.
	* 20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error line numbers.
	* 20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r173882
2011-05-18 23:59:17 +01:00
Paolo Carlini 1aa1114b63 tuple: Use noexcept where appropriate.
2011-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple: Use noexcept where appropriate.
	(tuple<>::swap): Rework implementation.
	(_Head_base<>::_M_swap_impl): Remove.
	(get(std::tuple<>&&)): Add.
	* testsuite/20_util/tuple/element_access/get2.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r173838
2011-05-18 00:12:58 +00:00
Paolo Carlini 18eeaec47b utility (get(std::pair<>&&)): Add.
2011-05-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/utility (get(std::pair<>&&)): Add.
	* include/bits/stl_pair.h (pair::swap(pair&),
	swap(pair<>&, pair<>&)): Use noexcept.
	* include/bits/random.h (discard_block_engine<>::base,
	independent_bits_engine<>::base, shuffle_order_engine<>::base,
	random_device::entropy): Use noexcept.
	* include/std/array: Use noexcept where appropriate.
	(get(array<>&&)): Add.
	* testsuite/23_containers/array/requirements/get.cc: New.
	* testsuite/20_util/pair/get.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-error
	line number.

From-SVN: r173798
2011-05-16 18:09:17 +00:00
Daniel Krugler d4610485cc re PR libstdc++/48631 ([C++0x] default_delete<T[]> accepts pointer conversions in function call operator)
2011-04-15  Daniel Krugler  <daniel.kruegler@googlemail.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/48631
	* include/bits/unique_ptr.h (default_delete<_Tp[]>): Add deleted
	function call operator.
	* testsuite/20_util/default_delete/48631_neg.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line numbers.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r172534
2011-04-16 02:02:29 +00:00
Paolo Carlini 355e71b9df shared_ptr.h (operator>, [...]): Add, per DR 1401.
2011-03-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/shared_ptr.h (operator>, operator<=, operator>=): Add,
	per DR 1401.
	(operator==, operator!=, operator<): Fix per the letter of DR 1401.
	* include/bits/shared_ptr_base.h: Likewise for __shared_ptr.
	* include/bits/unique_ptr.h (operator==, operator!=, operator<,
	operator<=, operator>, operator>=): Fix per the letter of DR 1401.
	* testsuite/20_util/shared_ptr/comparison/dr1401.cc: New.
	* testsuite/20_util/unique_ptr/comparison/dr1401.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.

From-SVN: r171293
2011-03-22 15:15:03 +00:00
Benjamin Kosnik e95992339f Makefile.am: Add functional.cc, shared_ptr.cc.
2011-03-14  Benjamin Kosnik  <bkoz@redhat.com>

	* src/Makefile.am: Add functional.cc, shared_ptr.cc.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Add nested_exception.cc.
	* libsupc++/Makefile.in: Regenerate.
	* src/system_error.cc: Add ctor and dtor definitions for error_category.
	* src/functional.cc: New. Add dtor definition for bad_function_call.
	* src/stdexcept.cc: Add dtor definitions for domain_error,
	invalid_argument, length_error, out_of_range, range_error,
	overflow_error, underflow_error.
	* src/future.cc: Add dtor definition for __future_base::_Result_base.
	* src/shared_ptr.cc: New. Add dtor definition for bad_weak_ptr.
	* src/thread.cc: Add dtor for thread::_Impl_base.
	* include/std/system_error: Adjust.
	* include/std/stdexcept: Same.
	* include/std/future: Same.
	* include/std/functional: Same.
	* include/std/thread: Same.
	* include/bits/shared_ptr_base.h: Same.
	* libsupc++/nested_exception.cc: New. Add dtor for nested_exception.
	* libsupc++/nested_exception.h: Adjust.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
	* config/abi/pre/gnu.ver: Add new exports.

	* include/bits/regex_compiler.h: Nest namespace versioning.
	* include/bits/regex_grep_matcher.tcc: Same.
	* include/bits/regex_grep_matcher.h: Same.
	* include/bits/regex_cursor.h: Same.
	* include/bits/regex_nfa.h: Same.
	* include/bits/regex_nfa.tcc: Same.

From-SVN: r170975
2011-03-15 00:24:08 +00:00
Benjamin Kosnik 12ffa22844 PR libstdc++/36104 part four
2011-01-30  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/36104 part four
	* include/bits/c++config (_GLIBCXX_STD): Remove.
	(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
	(_GLIBCXX_P): Now _GLIBCXX_STD_A.
	(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
	 _GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
	(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
	 _GLIBCXX_INLINE_PROFILE): Remove.
	(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
	(_GLIBCXX_END_NAMESPACE): Remove.
	(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
	(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
	(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
	(_GLIBCXX_END_NAMESPACE_ALGO): Add.
	(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
	(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
	(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
	(_GLIBCXX_END_NAMESPACE_VERSION): Add.
	(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
	(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
	(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
	* include/*: Use new macros for namespace scope.
	* config/*: Same.
	* src/*: Same.

	* src/Makefile.am (sources): Remove debug_list.cc, add
	compatibility-debug_list-2.cc.
	(parallel_sources): Remove parallel_list.cc, add
	compatibility-parallel_list-2.cc.
	(compatibility-parallel_list-2.[o,lo]): New rule.
	* src/Makefile.in: Regenerate.
	* src/debug_list.cc: Remove.
	* src/parallel_list.cc: Remove.
	* src/compatibility-list-2.cc: New.
	* src/compatibility-debug_list-2.cc: New.
	* src/compatibility-parallel_list-2.cc: New.

	* doc/doxygen/user.cfg.in: Adjust macros.

	* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
	* testsuite/20_util/declval/requirements/1_neg.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
	* testsuite/20_util/forward/c_neg.cc: Same.
	* testsuite/20_util/forward/f_neg.cc: Same.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/forward_list/capacity/1.cc: Same.
	* testsuite/23_containers/forward_list/requirements/dr438/
	assign_neg.cc: Same.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/forward_list/requirements/dr438/
	insert_neg.cc: Same.
	* testsuite/23_containers/list/capacity/29134.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
	* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
	* testsuite/25_algorithms/sort/35588.cc: Same.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
	* testsuite/ext/profile/profiler_algos.cc: Same.
	* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
	* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
	* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
	* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.

From-SVN: r169421
2011-01-30 22:39:36 +00:00
John David Anglin 0b1432029a re PR libstdc++/46869 (FAIL: 20_util/enable_shared_from_this/cons/constexpr.cc scan-assembler-not _ZNSt23enable_shared_from_thisIiEC2Ev)
2010-12-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR libstdc++/46869
	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc:
	Compile with -g0.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.

From-SVN: r168063
2010-12-19 16:20:25 +00:00
Jonathan Wakely 86137e8127 re PR libstdc++/46910 (std::shared_ptr requires public destructor for a class with friend deleter)
2010-12-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/46910
	* include/bits/shared_ptr_base.h (_Sp_counted_deleter): Do not
	derive from _Sp_counted_ptr.
	* testsuite/20_util/shared_ptr/cons/46910.cc: New.
	* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.

From-SVN: r167819
2010-12-14 22:13:26 +00:00
Nathan Froyd ad632e9801 re PR testsuite/46860 (New libstdc++ failures)
PR testsuite/46860
	* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust.
	* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Adjust.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.

From-SVN: r167625
2010-12-09 04:34:20 +00:00
François Dumont f38716953d stl_iterator.h: Add move_iterator operators overloads to make it robust to template abuses.
2010-12-07  François Dumont  <francois.cppdevs@free.fr>

	* include/bits/stl_iterator.h: Add move_iterator operators overloads
	to make it robust to template abuses.
	* testsuite/util/testsuite_greedy_ops.h: New.
	* testsuite/23_containers/vector/types/1.cc: Use latter.
	* testsuite/23_containers/deque/types/1.cc: Likewise.
	* testsuite/24_iterators/move_iterator/greedy_ops.cc: New.
	* testsuite/24_iterators/normal_iterator/greedy_ops.cc: New.
	* testsuite/24_iterators/reverse_iterator/greedy_ops.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line numbers.

From-SVN: r167580
2010-12-08 01:23:41 +00:00
Paolo Carlini 403b89a874 shared_ptr.h (shared_ptr<>::shared_ptr(_Tp1*, _Deleter, const _Alloc&), [...]): Take the allocator by value, per N3225.
2010-12-06  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/shared_ptr.h (shared_ptr<>::shared_ptr(_Tp1*, _Deleter,
	const _Alloc&), shared_ptr(nullptr_t, _Deleter, const _Alloc&)): Take
	the allocator by value, per N3225.
	(shared_ptr<>::shared_ptr(_Sp_make_shared_tag, _Alloc, _Args&&...),
	allocate_shared(_Alloc, _Args&&...): Viceversa, take the allocator
	by const lvalue ref.
	* include/bits/shared_ptr_base.h (__shared_count<>::
	__shared_count(_Sp_make_shared_tag, _Tp*, _Alloc, _Args&&...),
	__shared_ptr<>::__shared_ptr(_Sp_make_shared_tag, _Alloc, _Args&&...),
	__allocate_shared(_Alloc, _Args&&...)): Likewise.
	(__shared_ptr<>::__shared_ptr(_Tp1*, _Deleter, const _Alloc&),
	__shared_ptr(nullptr_t, _Deleter, const _Alloc&), reset(_Tp1*,
	_Deleter, const _Alloc&)): Take the allocator by value.
	* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust dg-error line
	numbers.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r167510
2010-12-06 18:37:00 +00:00
Paolo Carlini 258e15e073 re PR libstdc++/46821 ([C++0x] swapping empty classes)
2010-12-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/46821
	* include/std/tuple (_Head_base<,, true>::_M_swap_impl):
	Swap the empty bases.
	(_Head_base<,, false>::_M_swap_impl): Minor tweak.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r167497
2010-12-06 14:44:38 +00:00
Benjamin Kosnik 094a14eff7 tuple: Mark more constructors constexpr.
2010-11-24  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/tuple: Mark more constructors constexpr.
	* include/bits/stl_pair.h: Same.
	* testsuite/20_util/tuple/requirements/dr801.cc: New.
	* testsuite/20_util/pair/requirements/dr801.cc: New.
	* testsuite/20_util/tuple/cons/constexpr.cc: Add cases for new
	constexpr constructors.
	* testsuite/20_util/pair/cons/constexpr.cc: Same.
	* testsuite/20_util/pair/comparison_operators/constexpr.cc: New.

	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line number.

From-SVN: r167118
2010-11-24 16:33:14 +00:00
Benjamin Kosnik 85db9dcc30 chrono: Constexpr markup for is_monotonic.
2010-11-23  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/chrono: Constexpr markup for is_monotonic.
	* src/chrono.cc: Same.
	* testsuite/20_util/clocks/1.cc: Move...
	* testsuite/20_util/system_clock/1.cc: ...here.
	* testsuite/20_util/system_clock/constexpr_data.cc
	* testsuite/20_util/monotonic_clock/constexpr_data.cc

	* include/std/complex: Mark primary template constexpr.
	* testsuite/26_numerics/complex/cons/constexpr_primary.cc: Add.
	* testsuite/26_numerics/complex/complex_value.cc: Move...
	* testsuite/26_numerics/complex/dr387.cc: Move...
	* testsuite/26_numerics/complex/value_operations/1.cc: ... here.
	* testsuite/26_numerics/complex/value_operations/dr387.cc: ...here.
	* testsuite/26_numerics/complex/value_operations/constexpr.cc: New.

2010-11-23  Benjamin Kosnik  <bkoz@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	* testsuite/lib/libstdc++.exp: Use scanasm.
	* testsuite/util/testsuite_common_types.h
	(constexpr_default_constructible): Add support for non-literal types.
	(constexpr_single_value_constructible): Same.
	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc:
	Remove xfail.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Add.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Add.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Add.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust line number.

2010-11-23  Benjamin Kosnik  <bkoz@redhat.com>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/future (shared_future): Default ctor constexpr.
	(future): Same.
	* testsuite/30_threads/shared_future/cons/constexpr.cc: New.
	* testsuite/30_threads/future/cons/constexpr.cc: New.


Co-Authored-By: Jason Merrill <jason@redhat.com>
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>

From-SVN: r167099
2010-11-23 23:47:44 +00:00
Jonathan Wakely ef40b37106 unique_ptr.h: Use static_assert in constexpr constructors.
2010-11-10  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/unique_ptr.h: Use static_assert in constexpr
	constructors.
	* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Remove xfails.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r166525
2010-11-10 10:09:03 +00:00
Paolo Carlini c0f8c3b4f1 re PR libstdc++/46385 (FAIL: 20_util/weak_ptr/comparison/cmp_neg.cc)
2010-11-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/46385
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r166477
2010-11-09 09:49:14 +00:00
Paolo Carlini be9d3d7342 shared_ptr.h (shared_ptr<>::__shared_ptr(), [...]): Add constexpr specifier.
2010-11-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/shared_ptr.h (shared_ptr<>::__shared_ptr(),
	shared_ptr<>::shared_ptr(nullptr_t), weak_ptr<>::weak_ptr(),
	enable_shared_from_this::enable_shared_from_this()): Add constexpr
	specifier.
	* include/bits/shared_ptr_base.h (__shared_count::__shared_count(),
	__shared_count::__shared_count(), __shared_ptr<>::__shared_ptr(),
	__shared_ptr<>::__shared_ptr(nullptr_t), __weak_ptr<>::__weak_ptr(),
	__enable_shared_from_this::__enable_shared_from_this()): Likewise.
	* include/bits/unique_ptr.h (default_delete,
	unique_ptr<>::unique_ptr(), unique_ptr<>::unique_ptr(nullptr_t)):
	Likewise.
	* testsuite/20_util/default_delete/cons/constexpr.cc: Do not xfail.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Remove, the test
	cannot work for a non-literal type like std::shared_ptr.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
	* testsuite/util/testsuite_common_types.h: Add comments.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust dg-error line
	numbers.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r166386
2010-11-06 00:11:57 +00:00
Paolo Carlini 53dc5044ed cinttypes: Remove, move contents to C++0x and TR1 headers.
2010-11-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/tr1_impl/cinttypes: Remove, move contents to C++0x
	and TR1 headers.
	* include/tr1_impl/cstdlib: Likewise.
	* include/tr1_impl/cstdio: Likewise.
	* include/tr1_impl/cctype: Likewise.
	* include/tr1_impl/boost_sp_counted_base.h: Likewise.
	* include/tr1_impl/cmath: Likewise.
	* include/tr1_impl/cfenv: Likewise.
	* include/tr1_impl/utility: Likewise.
	* include/tr1_impl/complex: Likewise.
	* include/tr1_impl/cwchar: Likewise.
	* include/tr1_impl/type_traits: Likewise.
	* include/tr1_impl/cstdint: Likewise.
	* include/tr1_impl/regex: Likewise.
	* include/tr1_impl/array: Likewise.
	* include/tr1_impl/cwctype: Likewise.
	* include/Makefile.am: Adjust.
	* include/Makefile.in: Regenerate.
	* src/condition_variable.cc: Adjust; consistently use
	_GLIBCXX_BEGIN_NAMESPACE and _GLIBCXX_END_NAMESPACE.
	* src/mutex.cc: Likewise.
	* src/future.cc: Likewise.
	* src/atomic.cc: Likewise.
	* src/chrono.cc: Likewise.
	* src/thread.cc: Likewise.
	* include/std/tuple: Likewise.
	* include/std/utility: Likewise.
	* include/std/thread: Likewise.: Likewise.
	* include/std/type_traits: Likewise.
	* include/std/memory: Likewise.
	* include/std/future: Likewise.
	* include/std/ratio: Likewise.
	* include/std/chrono: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/mutex: Likewise.
	* include/std/functional: Likewise.
	* include/std/complex: Likewise.
	* include/std/typeindex: Likewise.
	* include/std/array: Likewise.
	* include/bits/regex_compiler.h: Likewise.
	* include/bits/regex_grep_matcher.tcc: Likewise.
	* include/bits/regex_grep_matcher.h: Likewise.
	* include/bits/regex_constants.h: Likewise.
	* include/bits/regex_cursor.h: Likewise.
	* include/bits/regex_nfa.tcc: Likewise.
	* include/bits/shared_ptr_base.h: Likewise.
	* include/bits/regex_nfa.h: Likewise.
	* include/bits/random.tcc: Likewise.
	* include/bits/regex.h: Likewise.
	* include/bits/random.h: Likewise.
	* include/bits/regex_error.h: Likewise.
	* include/c_global/cinttypes: Likewise.
	* include/c_global/cstdlib: Likewise.
	* include/c_global/cstdio: Likewise.
	* include/c_global/cctype: Likewise.
	* include/c_global/cmath: Likewise.
	* include/c_global/cfenv: Likewise.
	* include/c_global/cwchar: Likewise.
	* include/c_global/cstdint: Likewise.
	* include/c_global/cwctype: Likewise.
	* include/tr1/shared_ptr.h: Likewise.
	* include/tr1/cinttypes: Likewise.
	* include/tr1/cstdio: Likewise.
	* include/tr1/cfenv: Likewise.
	* include/tr1/utility: Likewise.
	* include/tr1/cwchar: Likewise.
	* include/tr1/type_traits: Likewise.
	* include/tr1/memory: Likewise.
	* include/tr1/cstdint: Likewise.
	* include/tr1/regex: Likewise.
	* include/tr1/cwctype: Likewise.
	* include/tr1/cstdlib: Likewise.
	* include/tr1/cctype: Likewise.
	* include/tr1/cmath: Likewise.
	* include/tr1/complex: Likewise.
	* include/tr1/array: Likewise.
	* include/c_compatibility/fenv.h: Likewise.
	* include/c_compatibility/stdint.h: Likewise.
	* include/c_compatibility/inttypes.h: Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820.cc: Adjust
	dg-error line numbers.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/
	typedefs_neg.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r166211
2010-11-02 18:51:23 +00:00
Benjamin Kosnik 94a86be0dd libstdc++: N3126 draft support.
* include/std/chrono: Extend constexpr application.
	* testsuite/util/testsuite_common_types.h
	(constexpr_default_constructible, constexpr_single_value_constructible)
	: Add comments about implied constraints.
	* testsuite/20_util/duration/cons/constexpr.cc: Activate all tests.
	* testsuite/20_util/time_point/cons/constexpr.cc: Same.
	* testsuite/20_util/time_point/requirements/constexpr_functions.cc:
	Same.
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust line
	numbers.
	* testsuite/20_util/time_point_cast/constexpr.cc: New.

	* include/std/bitset: Use __SIZEOF_* macros to re-create original
	logic instead of slipshod application of
	std::numeric_limits<T>::max() macros.
	* testsuite/util/testsuite_common_types.h
	(constexpr_default_constructible): Modify.

	* include/std/chrono: Tested constexpr.
	* testsuite/20_util/duration_cast/constexpr.cc: New.
	* testsuite/20_util/time_point/cons/constexpr.cc: New.

	* testsuite/20_util/duration/cons/constexpr.cc: Add single_value tests.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
	line numbers.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
	* testsuite/20_util/time_point/cons/constexpr.cc: Add single_value
	tests.
	* testsuite/20_util/time_point/requirements/constexpr_functions.cc: Add.

	* testsuite/util/testsuite_common_types.h: Adjust init.

	* include/std/chrono (duration): Remove defaulted constructor,
	replace with mem-init list.
	* testsuite/20_util/duration/cons/constexpr.cc: Add single value.
	* testsuite/20_util/duration/requirements/constexpr_functions.cc:
	Add non-static member functions.

	* testsuite/20_util/default_delete/cons/constexpr.cc: New, xfail.
	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Same.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Same.
	* testsuite/20_util/time_point/requirements/constexpr_functions.cc:
	Same.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Same.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Same.

	* include/std/bitset: Add constexpr as per N3126 draft.
	* testsuite/23_containers/bitset/cons/constexpr.cc: New.
	* testsuite/23_containers/bitset/requirements/constexpr_functions.cc:
	New.

	* testsuite/util/testsuite_common_types.h: Reset condition.

	* include/bits/random.h: Remove misleading comments.
	* include/bits/regex.h: Add constexpr.
	* testsuite/28_regex/05_constants/syntax_option_type.cc: Add tests.
	* testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc: New.

	PR libstdc++/46134
	* include/std/chrono: Use default constructor.
	* testsuite/util/testsuite_common_types.h
	(constexpr_default_constructible): Adjust condition.

	PR libstdc++/46133
	* include/std/complex: Adjust complex specialization default
	constructors for constexpr.
	* testsuite/26_numerics/complex/cons/constexpr.cc: Enable tests.

	* include/bits/random.h: Adjust for constexpr as per N3126 draft.
	* testsuite/26_numerics/random/discard_block_engine/requirements/
	constexpr_data.cc: New.
	* testsuite/26_numerics/random/discard_block_engine/requirements/
	constexpr_functions.cc: New.
	* testsuite/26_numerics/random/independent_bits_engine/requirements/
	constexpr_functions.cc: New.
	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
	constexpr_data.cc: New.
	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
	constexpr_functions.cc: New.
	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
	constexpr_data.cc: New.
	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
	constexpr_functions.cc: New.
	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
	constexpr_data.cc: New.
	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
	constexpr_functions.cc: New.
	* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
	constexpr_data.cc: New.
	* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
	constexpr_functions.cc: New.

	* include/bits/stream_iterator.h: Add constexpr as per N3126 draft.
	* include/bits/streambuf_iterator.h: Same.
	* include/std/complex: Same.
	* testsuite/24_iterators/istream_iterator/cons/constexpr.cc: New.
	* testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc: New.
	* testsuite/26_numerics/complex/cons/constexpr.cc: New.
	* testsuite/26_numerics/complex/requirements/constexpr_functions.cc:
	New.

	* include/bits/char_traits.h: Add constexpr as per N3126 draft.
	* testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
	New.

	* include/tr1_impl/array: Add constexpr as per N3126 draft.
	* testsuite/23_containers/array/requirements/
	constexpr_functions.cc: New.

	* include/bits/shared_ptr.h: Revert changes.
	* include/bits/unique_ptr.h: Same.

	* include/std/chrono: Adjust.
	* include/tr1_impl/type_traits: Same.

	* testsuite/util/testsuite_common_types.h: Add test functors.
	* testsuite/20_util/duration/cons/constexpr.cc: New.
	* testsuite/20_util/duration/requirements/constexpr_functions.cc: Same.
	* testsuite/20_util/pair/cons/constexpr.cc: Same.
	* testsuite/20_util/ratio/requirements/constexpr_data.cc: Same.
	* testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc: Same.
	* testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc: Same.
	* testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc: Same.
	* testsuite/30_threads/call_once/constexpr.cc: Same.
	* testsuite/30_threads/mutex/cons/constexpr.cc: Same.
	* testsuite/30_threads/once_flag/cons/constexpr.cc: Same.
	* testsuite/tr1/4_metaprogramming/integral_constant/requirements/
	constexpr_data.cc: Same.

	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same.

	* include/bits/allocator.h: Add constexpr as per N3126 draft.
	* include/bits/ios_base.h: Same.
	* include/bits/shared_ptr.h: Same.
	* include/bits/unique_ptr.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/stl_pair.h: Same.
	* include/std/tuple: Same.
	* include/tr1_impl/type_traits: Same.
	* include/std/chrono: Same.
	* include/std/ratio: Same.
	* include/std/mutex: Same.
	* src/mutex.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
	* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.

	* doc/doxygen/user.cfg.in: Replace _GLIBCXX_USE_CONSTEXPR,
	_GLIBCXX_CONSTEXPR for doxygen generation.

	* src/limits.cc: Undef.
	* testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust.
	* testsuite/29_atomics/atomic_address/cons/constexpr.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
	* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.c: Same.
	* testsuite/18_support/numeric_limits/constexpr.cc: To...
	* testsuite/18_support/numeric_limits/requirements/
	constexpr_data.cc, constexpr_functions.cc: ...this

	* testsuite/util/testsuite_common_types.h
	(constexpr_single_value_constructible): Add.
	* testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust name.
	* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
	* testsuite/29_atomics/atomic_address/cons/constexpr.cc: New.
	* testsuite/18_support/numeric_limits/constexpr.cc: New.

	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
	* testsuite/29_atomics/atomic/cons/constexpr.cc: Same.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: Same.
	* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: Same.

	* include/bits/c++config (_GLIBCXX_CONSTEXPR): Add.
	(_GLIBCXX_USE_CONSTEXPR): Add.
	* include/std/limits: Use it.
	* src/limits.cc: Adjust.
	* testsuite/ext/profile/mutex_extensions.cc: Change line number.

	* include/bits/atomic_0.h: Rework for N3126 draft, add constexpr.
	* include/bits/atomic_2.h: Same.
	* include/bits/atomic_base.h: Same.
	* include/std/atomic: Same.
	* src/atomic.cc: Same.
	* include/bits/atomicfwd_c.h: Remove.
	* include/bits/atomicfwd_cxx.h: Remove.
	* include/c_compatibility/stdatomic.h: Remove.
	* include/Makefile.am: Remove atomicfwd_c.h, atomicfwd_cxx.h,
	stdatomic.h.
	* include/Makefile.in: Regenerate.
	* doc/xml/manual/using.xml: Update list of header files for changes.
	* testsuite/util/testsuite_common_types.h
	(constexpr_constructible): Add.
	* testsuite/29_atomics/atomic/cons/constexpr.cc: New.
	* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: New.
	* testsuite/17_intro/headers/c++200x/stdc++.cc: Modify.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/atomic_address/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/atomic_flag/cons/1.cc: Same.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/headers/atomic/macros.cc: Same.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Same.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Same.
	* testsuite/29_atomics/atomic_flag/test_and_set/implicit.c: Remove.
	* testsuite/29_atomics/atomic_flag/test_and_set/explicit.c: Same.
	* testsuite/29_atomics/atomic_flag/clear/1.c: Same.
	* testsuite/29_atomics/headers/stdatomic.h/debug_mode.c: Same.
	* testsuite/29_atomics/headers/stdatomic.h/functions.c: Same.
	* testsuite/29_atomics/headers/stdatomic.h/macros.c: Same.
	* testsuite/29_atomics/headers/stdatomic.h/types.c: Same.

	* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.16.

From-SVN: r166171
2010-11-01 22:35:28 -04:00
Paolo Carlini aa2b7414b0 allocator.h (allocator_arg_t, [...]): Add.
2010-09-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/allocator.h (allocator_arg_t, allocator_arg,
	uses_allocator): Add.
	* testsuite/20_util/uses_allocator/value.cc: New.
	* testsuite/20_util/uses_allocator/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/
	explicit_instantiation.cc: Likewise.
	* include/bits/stl_queue.h (uses_allocator<queue>,
	uses_allocator<priority_queue>): Add.
	* include/bits/stl_stack.h (uses_allocator<stack>): Likewise.

	* include/bits/stl_pair.h (piecewise_construct): Add.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r164654
2010-09-27 17:27:43 +00:00
Paolo Carlini 3abeaf8f89 re PR libstdc++/42925 ([GB 99] Not possible to compare unique_ptr with 0)
2010-08-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/42925
	* include/bits/unique_ptr.h (operator==(const unique_ptr<>&,
	nullptr_t), operator==(nullptr_t, const unique_ptr<>&),
	operator!=(const unique_ptr<>&, nullptr_t),
	operator!=(nullptr_t, const unique_ptr<>&)): Add.
	* include/bits/shared_ptr_base.h (operator==(const __shared_ptr<>&,
	nullptr_t), operator==(nullptr_t, const __shared_ptr<>&),
	operator!=(const __shared_ptr<>&, nullptr_t),
	operator!=(nullptr_t, const __shared_ptr<>&)): Likewise.
	* include/bits/shared_ptr.h (operator==(const shared_ptr<>&,
	nullptr_t), operator==(nullptr_t, const shared_ptr<>&),
	operator!=(const shared_ptr<>&, nullptr_t),
	operator!=(nullptr_t, const shared_ptr<>&)): Likewise.
	* testsuite/20_util/unique_ptr/comparison/42925.cc: New.
	* testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust
	dg-error line numbers.

From-SVN: r163094
2010-08-11 08:49:47 +00:00
Paolo Carlini c1510a4900 shared_ptr_base.h: Remove a few now redundant __glibcxx_function_requires(_ConvertibleConcept...).
2010-08-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/shared_ptr_base.h: Remove a few now redundant
	__glibcxx_function_requires(_ConvertibleConcept...).
	* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust dg-error
	line number.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r163075
2010-08-10 16:54:09 +00:00
Paolo Carlini 5aadb69b90 cons_overflow_neg.cc: Avoid -Wall warnings.
2010-08-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Avoid -Wall
	warnings.

	* include/bits/shared_ptr.h (shared_ptr<>::shared_ptr
	(const shared_ptr<>&), shared_ptr(shared_ptr<>&&), weak_ptr<>::
	weak_ptr(const weak_ptr<>&), weak_ptr(const shared_ptr<>&)):
	Constrain appropriately via std::is_convertible, etc.
	* include/bits/shared_ptr_base.h: Likewise.
	* include/bits/unique_ptr.h (default_delete<>::
	default_delete(const default_delete<>&),
	unique_ptr<>::unique_ptr(unique_ptr<>&&), operator=(unique_ptr<>&&)):
	Likewise.

	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line numbers.
	* testsuite/20_util/shared_ptr/cons/43820.cc: Likewise.

	* include/bits/unique_ptr.h (unique_ptr<>::unique_ptr(auto_ptr<>&&)):
	Add.
	* include/std/memory: Adjust includes order.
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: New.
	* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Minor tweaks.

From-SVN: r163053
2010-08-10 10:08:56 +00:00
Paolo Carlini 0a5c2065bd re PR libstdc++/45228 ([C++0x] Can't copy-construct "tuple<int,int,int>" from "const tuple<int,int,int>" rvalue)
2010-08-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/45228
	* include/std/tuple (tuple<typename... _Elements>): Constrain
	converting constructors and assignment operators with
	sizeof...(_UElements) == sizeof...(_Elements).
	(tuple(tuple<_UElements...>&): Remove.
	(tuple<typename _T1>): Add.
	* testsuite/20_util/tuple/cons/45228.cc: New.
	* testsuite/20_util/tuple/cons/converting.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust
	dg-error line number.

	* include/std/tuple (_Tuple_impl<>::_Tuple_impl(const _Tuple_impl&)):
	Defaulted.

	* include/std/tuple (tuple<typename _T1, typename _T2>
	::operator=(pair<_U1, _U2>&&)): Use forward.

From-SVN: r163049
2010-08-10 07:17:44 +00:00
Paolo Carlini 71234632dd re PR libstdc++/44963 ([DR 1334] Ambiguous function overload using __gnu_cxx::crope with std::back_inserter in c++0x mode)
2010-08-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/44963
	* include/bits/stl_iterator.h (insert_iterator<>::
	operator=(const typename _Container::value_type&,
	back_insert_iterator<>::
	operator=(const typename _Container::value_type&),
	front_insert_iterator<>::
	operator=(const typename _Container::value_type&))): Add
	in C++0x mode.
	* testsuite/ext/rope/44963.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust
	dg-error line number.

From-SVN: r163001
2010-08-08 14:54:51 +00:00
Paolo Carlini d247d6625a tuple (tuple(const tuple&)): Define explicitly-defaulted.
2010-06-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (tuple(const tuple&)): Define explicitly-defaulted.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-warning
	line number.

From-SVN: r160539
2010-06-10 12:24:31 +00:00
Paolo Carlini 87b2e74657 re PR libstdc++/44487 ([C++0x] pair of references doesn't work)
2010-06-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/44487
	* include/bits/stl_pair.h (pair(pair&&)): Remove.
	(pair(pair<_U1, _U2>&&): Use forward, consistently with Bullet 5
	of LWG 1326.
	* include/std/tuple (tuple(pair<_U1, _U2>&&)): Likewise.
	* testsuite/20_util/pair/44487.cc: Add.
	* testsuite/20_util/tuple/cons/44487.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line numbers.

From-SVN: r160528
2010-06-10 10:24:46 +00:00
Jonathan Wakely 6d00745b6d [multiple changes]
2010-06-05  Magnus Fromreide  <magfr@lysator.liu.se>
            Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/functional (function): Add nullptr_t support.
	* include/bits/shared_ptr.h (shared_ptr): Likewise.
	* include/bits/unique_ptr.h (unique_ptr): Likewise.

2010-06-05  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/shared_ptr_base.h (__shared_ptr): Add nullptr_t support.
	(__shared_count): Add nullptr_t support and make constructors explicit.
	* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust.
	* testsuite/20_util/shared_ptr/cons/nullptr.cc: New.
	* testsuite/20_util/unique_ptr/cons/nullptr.cc: New.
	* testsuite/20_util/unique_ptr/assign/nullptr.cc: New.
	* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Adjust.
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Adjust.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.

From-SVN: r160324
2010-06-05 18:43:29 +01:00
Paolo Carlini ab6bfd90cb stl_pair.h (pair<>::pair(const pair&)): Defaulted in C++0x mode.
2010-05-20  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_pair.h (pair<>::pair(const pair&)): Defaulted
	in C++0x mode.
	(pair<>::operator=(const pair<>&)): Add in C++0x mode.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r159628
2010-05-20 14:08:53 +00:00
Jason Merrill 3784b33cd1 re PR c++/20669 (Template candidates not listed in error message.)
PR c++/20669
	* call.c (add_template_candidate_real): If deduction fails, still
	add the template as a non-viable candidate.
	(equal_functions): Handle template candidates.
	(print_z_candidate): Likewise.
	(print_z_candidates): Likewise.
	(build_new_function_call): Likewise.

From-SVN: r159335
2010-05-12 13:34:55 -04:00
Paolo Carlini 15d81a3c31 functional_hash.h (hash<string>, [...]): Move, per DR 1182 to...
2010-02-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/functional_hash.h (hash<string>, hash<wstring>,
	hash<u16string>, hash<u32string>, hash<error_code>): Move, per
	DR 1182 to...
	* include/bits/basic_string.h: ... here.
	* include/std/system_error: ... and here, respectively.
	* src/hash-aux.cc (hash<long double>::operator()(long double)):
	Move definition...
	* src/hash_c++0x.cc: ... here, new file.
	* src/hash_tr1.cc: ... and here, tweak includes.
	* src/compatibility-c++0x.cc (hash, _Fnv_hash): Remove.
	* src/Makefile.am: Adjust.
	* src/Makefile.in: Regenerate.
	* include/std/functional: Include <bits/functexcept.h>.
	* include/std/unordered_set: Remove redundant include.
	* include/std/unordered_map: Likewise.
	* include/tr1/functional_hash.h: Remove spurious trailing semicolon.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Remove
	dg-excess.

From-SVN: r156971
2010-02-22 18:07:07 +00:00
Paolo Carlini 415ed61204 shared_ptr_base.h (__weak_ptr): Remove deleted comparison operators, per DR 1256.
2010-02-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/shared_ptr_base.h (__weak_ptr): Remove deleted
	comparison operators, per DR 1256.
	* include/bits/shared_ptr.h (weak_ptr): Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.

From-SVN: r156891
2010-02-19 10:42:47 +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
Jakub Jelinek 748086b7b2 Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
From-SVN: r145841
2009-04-09 17:00:19 +02:00
Jonathan Wakely 8dd5e93af6 shared_ptr.h: Update comparisons to match WP.
2008-11-01  Jonathan Wakely  <jwakely.gcc@gmail.com>

        * include/bits/shared_ptr.h: Update comparisons to match WP.
        (_Sp_counted_ptr): Make copy and assignment members deleted.
        (_Sp_counted_deleter): Remove private copy and assignment members.
        (__shared_count::_M_less,__weak_count::_M_less,operator<): Replace
        friend operator< with overloaded _M_less member functions to allow
        comparison with either shared_count or weak_count.
        (__shared_ptr::_M_less,__weak_ptr::_M_less): Replace with...
        (__shared_ptr::owner_before,__weak_ptr::owner_before): New overloads
        for ownership-based ordering.
        (operator<(__shared_ptr,__shared_ptr)): Compare stored pointers,
        make non-friend.
        (operator==(__shared_ptr,__shared_ptr)): Make non-friend.
        (operator!=(__shared_ptr,__shared_ptr)): Likewise.
        (less<__shared_ptr<>>,less<shared_ptr<>>,_Sp_less): Explicitly call
        pointer specialization.
        (__weak_ptr::operator<,weak_ptr::operator<=,weak_ptr::operator>,
        weak_ptr::operator>=): Remove operator< and delete all comparisons.
        (_Sp_owner_less,owner_less): Predicate for ownership-based ordering.
        (operator<(shared_ptr,shared_ptr): Overload for derived shared_ptr.
        (operator==(shared_ptr,shared_ptr): Likewise.
        (operator!=(shared_ptr,shared_ptr): Likewise.
        (swap(shared_ptr,shared_ptr)): Fix parameter types.
        (swap(weak_ptr,weak_ptr)): Add missing overload.
        * testsuite/20_util/owner_less/cmp.cc: New.
        * testsuite/20_util/shared_ptr/comparison/cmp.cc: Test other ops.
        * testsuite/20_util/shared_ptr/comparison/less.cc: New.
        * testsuite/20_util/shared_ptr/observers/owner_before.cc: New.
        * testsuite/20_util/weak_ptr/observers/owner_before.cc: New.
        * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: New.

From-SVN: r141512
2008-11-01 11:29:06 +00:00