Commit Graph

779 Commits

Author SHA1 Message Date
Ville Voutilainen 6254952346 Implement LWG 2769, Redundant const in the return type of any_cast(const any&).
Implement LWG 2769, Redundant const in the return type of
any_cast(const any&).
* include/std/any (_AnyCast): New.
(any_cast(const any&)): Use it and add an explicit cast for return.
(any_cast(any&)): Likewise.
(any_cast(any&&)): Likewise.
* testsuite/20_util/any/misc/any_cast.cc: Add a test for a type
that has an explicit copy constructor.
*testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.

From-SVN: r243739
2016-12-16 13:34:45 +02:00
Jonathan Wakely 1f153a1d2a Replace dynamic exception specifications in testsuite
* testsuite/util/testsuite_hooks.h (THROW): Define.
	* testsuite/util/replacement_memory_operators.h: Include
	testsuite_hooks.h and use THROW macro.
	* testsuite/util/testsuite_tr1.h: Likewise.
	* testsuite/20_util/allocator/1.cc: Use THROW macro.
	* testsuite/22_locale/locale/cons/12352.cc: Likewise.
	* testsuite/23_containers/vector/zero_sized_allocations.cc: Likewise.
	* testsuite/30_threads/lock_guard/cons/1.cc: Replace dynamic exception
	specification with noexcept-specifier.
	* testsuite/ext/pool_allocator/allocate_chunk.cc: Include
	testsuite_hooks.h and use THROW macro.
	* testsuite/ext/profile/replace_new.cc: Likewise.

From-SVN: r243353
2016-12-07 15:22:51 +00:00
Tim Shen b01af236b7 variant (visit): Make visit constexpr.
* include/std/variant (visit): Make visit constexpr. Also cleanup
	__get_alternative and __storage, since we don't support reference/void
	alternatives any more.
	* testsuite/20_util/variant/compile.cc: Add tests.

From-SVN: r243295
2016-12-06 11:28:09 +00:00
Tim Shen 458ef69052 enable_special_members.h: Make _Enable_default_constructor constexpr.
* include/bits/enable_special_members.h: Make
	_Enable_default_constructor constexpr.
	* include/std/variant (variant::emplace, variant::swap, std::swap,
	std::hash): Sfinae on emplace and std::swap; handle __poison_hash bases
	of duplicated types.
	* testsuite/20_util/variant/compile.cc: Add tests.
	* testsuite/20_util/variant/hash.cc: Add tests.

From-SVN: r243294
2016-12-06 11:26:48 +00:00
Tim Shen 9189f55908 variant (std::get, operator==): Implement constexpr comparison and get<>.
* include/std/variant (std::get, operator==): Implement constexpr
	comparison and get<>.
	* testsuite/20_util/variant/compile.cc: Tests.

From-SVN: r243293
2016-12-06 11:20:13 +00:00
Tim Shen 44f4688595 variant (__erased_use_alloc_ctor, [...]): Remove uses-allocator related functions.
* include/std/variant (__erased_use_alloc_ctor,
	_Variant_base::_Variant_base, variant::variant): Remove uses-allocator
	related functions.
	* testsuite/20_util/variant/compile.cc: Remove related tests.
	* testsuite/20_util/variant/run.cc: Remove related tests.

From-SVN: r243292
2016-12-06 11:17:56 +00:00
Ville Voutilainen a2863bde75 Implement LWG 2766,
Swapping non-swappable types and LWG 2749,
swappable traits for variants.
* include/bits/move.h (swap(_Tp&, _Tp&)): Constrain
with __is_tuple_like.
* include/bits/stl_pair.h (swap(pair<_T1, _T2>&, pair<_T1, _T2>&)):
Add a deleted overload.
* include/bits/unique_ptr.h
(swap(unique_ptr<_Tp, _Dp>&, unique_ptr<_Tp, _Dp>&)): Likewise.
* include/std/array
(swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&)): Likewise.
* include/std/optional
(swap(optional<_Tp>&, optional<_Tp>&)): Likewise.
* include/std/tuple (__is_tuple_like_impl, __is_tuple_like):
Move to type_traits.
(swap(tuple<_Elements...>&, tuple<_Elements...>&)): Add a deleted
overload.
* include/std/type_traits (__is_tuple_like_impl, __is_tuple_like):
New.
(swap(_Tp&, _Tp&)): Constrain with __is_tuple_like.
* include/std/utility (__is_tuple_like_impl): Move to type_traits.
* include/std/variant
(swap(variant<_Types...>&, variant<_Types...>&)):
Add a deleted overload.
* testsuite/20_util/optional/swap/2.cc: Add tests for disabled
swaps.
* testsuite/20_util/pair/swap_cxx17.cc: New.
* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
Likewise.
* testsuite/20_util/variant/compile.cc: Add tests for disabled
swaps.
* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r243120
2016-12-01 18:23:21 +02:00
Tim Shen 3203ed5f01 re PR libstdc++/78441 ([variant] variant_alternative doesn't allow cv qualifiers)
PR libstdc++/78441
	* include/std/variant: Propagate cv qualifications to types returned
	by variant_alternative.
	* testsuite/20_util/variant/compile.cc: Tests.

From-SVN: r242892
2016-11-27 00:32:04 +00:00
Jonathan Wakely 6ae2ae3b84 Make std::tuple_size<cv T> SFINAE-friendly (LWG 2770)
* doc/xml/manual/intro.xml: Document LWG 2770 status. Remove entries
	for 2742 and 2748.
	* doc/html/*: Regenerate.
	* include/std/utility (__tuple_size_cv_impl): New helper to safely
	detect tuple_size<T>::value, as per LWG 2770.
	(tuple_size<cv T>): Adjust partial specializations to derive from
	__tuple_size_cv_impl.
	* testsuite/20_util/tuple/cv_tuple_size.cc: Test SFINAE-friendliness.

From-SVN: r242452
2016-11-15 19:32:44 +00:00
Tim Shen 7b277e8b46 variant: Remove variant<T&>...
* include/std/variant: Remove variant<T&>, variant<void>, variant<> support
	to rebase on the post-Issaquah design.
	* testsuite/20_util/variant/compile.cc: Likewise.

From-SVN: r242437
2016-11-15 17:26:59 +00:00
Jonathan Wakely c7cbb4dafb Fix find&replace error in license boilerplate
* testsuite/19_diagnostics/error_code/is_error_code_v.cc: Fix license
	text.
	* testsuite/20_util/any/assign/emplace.cc: Likewise.
	* testsuite/20_util/any/cons/in_place.cc: Likewise.
	* testsuite/20_util/any/make_any.cc: Likewise.
	* testsuite/20_util/any/requirements.cc: Likewise.
	* testsuite/20_util/any/typedefs.cc: Likewise.
	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
	* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
	Likewise.
	* testsuite/20_util/in_place/requirements.cc: Likewise.
	* testsuite/20_util/optional/77288.cc: Likewise.
	* testsuite/20_util/optional/assignment/1.cc: Likewise.
	* testsuite/20_util/optional/assignment/2.cc: Likewise.
	* testsuite/20_util/optional/assignment/3.cc: Likewise.
	* testsuite/20_util/optional/assignment/4.cc: Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Likewise.
	* testsuite/20_util/optional/assignment/6.cc: Likewise.
	* testsuite/20_util/optional/assignment/7.cc: Likewise.
	* testsuite/20_util/optional/cons/77727.cc: Likewise.
	* testsuite/20_util/optional/cons/move.cc: Likewise.
	* testsuite/20_util/optional/cons/value.cc: Likewise.
	* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
	* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
	* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
	* testsuite/20_util/optional/hash.cc: Likewise.
	* testsuite/20_util/optional/make_optional.cc: Likewise.
	* testsuite/20_util/optional/observers/1.cc: Likewise.
	* testsuite/20_util/optional/observers/2.cc: Likewise.
	* testsuite/20_util/optional/observers/3.cc: Likewise.
	* testsuite/20_util/optional/observers/4.cc: Likewise.
	* testsuite/20_util/optional/observers/5.cc: Likewise.
	* testsuite/20_util/optional/observers/6.cc: Likewise.
	* testsuite/20_util/optional/relops/1.cc: Likewise.
	* testsuite/20_util/optional/relops/2.cc: Likewise.
	* testsuite/20_util/optional/relops/3.cc: Likewise.
	* testsuite/20_util/optional/relops/4.cc: Likewise.
	* testsuite/20_util/optional/relops/5.cc: Likewise.
	* testsuite/20_util/optional/relops/6.cc: Likewise.
	* testsuite/20_util/optional/requirements.cc: Likewise.
	* testsuite/20_util/optional/swap/1.cc: Likewise.
	* testsuite/20_util/optional/typedefs.cc: Likewise.
	* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
	Likewise.
	* testsuite/20_util/variable_templates_for_traits.cc: Likewise.
	* testsuite/20_util/variant/hash.cc: Likewise.
	* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
	* testsuite/experimental/any/typedefs.cc: Likewise.
	* testsuite/experimental/array/make_array.cc: Likewise.
	* testsuite/experimental/array/neg.cc: Likewise.
	* testsuite/experimental/chrono/value.cc: Likewise.
	* testsuite/experimental/deque/erasure.cc: Likewise.
	* testsuite/experimental/forward_list/erasure.cc: Likewise.
	* testsuite/experimental/list/erasure.cc: Likewise.
	* testsuite/experimental/map/erasure.cc: Likewise.
	* testsuite/experimental/memory/observer_ptr/assignment/assign.cc:
	Likewise.
	* testsuite/experimental/memory/observer_ptr/cons/cons.cc: Likewise.
	* testsuite/experimental/memory/observer_ptr/hash/hash.cc: Likewise.
	* testsuite/experimental/memory/observer_ptr/make_observer.cc:
	Likewise.
	* testsuite/experimental/memory/observer_ptr/relops/relops.cc:
	Likewise.
	* testsuite/experimental/memory/observer_ptr/requirements.cc: Likewise.
	* testsuite/experimental/memory/observer_ptr/swap/swap.cc: Likewise.
	* testsuite/experimental/memory/observer_ptr/typedefs.cc: Likewise.
	* testsuite/experimental/optional/77288.cc: Likewise.
	* testsuite/experimental/optional/assignment/1.cc: Likewise.
	* testsuite/experimental/optional/assignment/2.cc: Likewise.
	* testsuite/experimental/optional/assignment/3.cc: Likewise.
	* testsuite/experimental/optional/assignment/4.cc: Likewise.
	* testsuite/experimental/optional/assignment/5.cc: Likewise.
	* testsuite/experimental/optional/assignment/6.cc: Likewise.
	* testsuite/experimental/optional/cons/77727.cc: Likewise.
	* testsuite/experimental/optional/cons/move.cc: Likewise.
	* testsuite/experimental/optional/cons/value.cc: Likewise.
	* testsuite/experimental/optional/cons/value_neg.cc: Likewise.
	* testsuite/experimental/optional/constexpr/cons/value.cc: Likewise.
	* testsuite/experimental/optional/constexpr/make_optional.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/1.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/5.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/1.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/2.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/3.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/5.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/6.cc: Likewise.
	* testsuite/experimental/optional/make_optional.cc: Likewise.
	* testsuite/experimental/optional/observers/1.cc: Likewise.
	* testsuite/experimental/optional/observers/2.cc: Likewise.
	* testsuite/experimental/optional/observers/3.cc: Likewise.
	* testsuite/experimental/optional/observers/4.cc: Likewise.
	* testsuite/experimental/optional/observers/5.cc: Likewise.
	* testsuite/experimental/optional/relops/1.cc: Likewise.
	* testsuite/experimental/optional/relops/2.cc: Likewise.
	* testsuite/experimental/optional/relops/3.cc: Likewise.
	* testsuite/experimental/optional/relops/4.cc: Likewise.
	* testsuite/experimental/optional/relops/5.cc: Likewise.
	* testsuite/experimental/optional/relops/6.cc: Likewise.
	* testsuite/experimental/optional/requirements.cc: Likewise.
	* testsuite/experimental/optional/swap/1.cc: Likewise.
	* testsuite/experimental/optional/typedefs.cc: Likewise.
	* testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
	Likewise.
	* testsuite/experimental/propagate_const/cons/move.cc: Likewise.
	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
	* testsuite/experimental/propagate_const/hash/1.cc: Likewise.
	* testsuite/experimental/propagate_const/observers/1.cc: Likewise.
	* testsuite/experimental/propagate_const/relops/1.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements1.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
	* testsuite/experimental/propagate_const/swap/1.cc: Likewise.
	* testsuite/experimental/propagate_const/typedefs.cc: Likewise.
	* testsuite/experimental/random/randint.cc: Likewise.
	* testsuite/experimental/ratio/value.cc: Likewise.
	* testsuite/experimental/set/erasure.cc: Likewise.
	* testsuite/experimental/string/erasure.cc: Likewise.
	* testsuite/experimental/string_view/typedefs.cc: Likewise.
	* testsuite/experimental/system_error/value.cc: Likewise.
	* testsuite/experimental/tuple/tuple_size.cc: Likewise.
	* testsuite/experimental/type_traits/value.cc: Likewise.
	* testsuite/experimental/unordered_map/erasure.cc: Likewise.
	* testsuite/experimental/unordered_set/erasure.cc: Likewise.
	* testsuite/experimental/vector/erasure.cc: Likewise.

From-SVN: r242417
2016-11-15 14:33:41 +00:00
Jonathan Wakely 8b99f005cb Constrain swap overload for std::optional (LWG 2748)
* doc/xml/manual/intro.xml: Document LWG 2748 status.
	* include/std/optional (optional<T>::swap): Use is_nothrow_swappable_v
	for exception specification.
	(swap(optional<T>&, optional<T>&)): Disable when T is not swappable.
	* testsuite/20_util/optional/swap/2.cc: New test.

From-SVN: r242415
2016-11-15 14:33:09 +00:00
Ville Voutilainen 6964bb3ed9 Implement P0513R0, Poisoning the Hash.
* include/bits/functional_hash.h (__poison_hash): New.
* include/bits/unique_ptr.h
(hash<unique_ptr<_Tp, _Dp>>): Derive from __poison_hash.
* include/std/optional (hash<optional<_Tp>>): Likewise.
* include/std/variant (hash<variant<_Types...>>): Likewise.
* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
* testsuite/20_util/default_delete/void_neg.cc: Likewise.
* testsuite/20_util/optional/hash.cc: New.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Adjust.
* testsuite/20_util/unique_ptr/hash/1.cc: Add tests for
poisoned fancy pointer hashes.
* testsuite/20_util/variant/hash.cc: New.

From-SVN: r242402
2016-11-14 23:22:53 +02:00
Ville Voutilainen 627a2f5923 Implement P0504R0 (Revisiting in-place tag types for any/optional/variant).
Implement P0504R0 (Revisiting in-place tag types for
any/optional/variant).
* include/std/any (any(_ValueType&& __value)): Constrain
the __is_in_place_type with the decayed type.
(make_any): Adjust to use the new tag type.
* include/std/utility (in_place_tag): Remove.
(in_place_t): Turn into a non-reference tag type.
(__in_place, __in_place_type, __in_place_index): Remove.
(in_place): Turn into an inline variable of non-reference
tag type.
(in_place<_Tp>): Remove.
(in_place_index<_Idx>): Remove.
(in_place_type_t): New.
(in_place_type): Turn into a variable template of non-reference
type.
(in_place_index_t): New.
(in_place_index): Turn into a variable template of non-reference
type.
* include/std/variant
(_Variant_storage(in_place_index_t<_Np>, _Args&&...)): Adjust to
use the new tag type.
(_Union(in_place_index_t<0>, _Args&&...)): Likewise.
(_Union(in_place_index_t<_Np>, _Args&&...)): Likewise.
(_Variant_base()): Likewise.
(variant(_Tp&&)): Likewise.
(variant(in_place_type_t<_Tp>, _Args&&...)): Likewise.
(variant(in_place_type_t<_Tp>, initializer_list<_Up>,
_Args&&...)): Likewise.
(variant(in_place_index_t<_Np>, _Args&&...)): Likewise.
(variant(in_place_index_t<_Np>, initializer_list<_Up>,
_Args&&...)): Likewise
(variant(allocator_arg_t, const _Alloc&)): Likewise.
(variant(allocator_arg_t, const _Alloc&, _Tp&&)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_type_t<_Tp>,
_Args&&...)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_type_t<_Tp>,
initializer_list<_Up>, _Args&&...)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_index_t<_Np>,
_Args&&...)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_index_t<_Np>,
initializer_list<_Up>, _Args&&...)): Likewise.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* testsuite/20_util/any/cons/explicit.cc: Likewise.
* testsuite/20_util/any/cons/in_place.cc: Likewise.
* testsuite/20_util/any/requirements.cc: Add tests to
check that any is not constructible from the new in_place_type_t
of any value category.
* testsuite/20_util/in_place/requirements.cc: Adjust to
use the new tag type.
* testsuite/20_util/variant/compile.cc: Likewise.
* testsuite/20_util/variant/run.cc: Likewise.

From-SVN: r242401
2016-11-14 22:47:44 +02:00
Ville Voutilainen ca9e949f2e Use constexpr addressof in optional, SFINAE housekeeping for any, optional and tuple.
Use constexpr addressof in optional, SFINAE housekeeping
for any, optional and tuple.
* include/std/any (__do_emplace(_Args&&...)): New.
(__do_emplace(initializer_list<_Up>, _Args&&...)): Likewise.
(__any_constructible): Likewise.
(__any_constructible_t): Use __any_constructible.
(operator=(_ValueType&&)): SFINAE in the return type.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/optional (_Has_addressof_mem): Remove.
(_Has_addressof_free): Likewise.
(_Has_addressof): Likewise.
(__constexpr_addressof(_Tp&)): Likewise.
(operator->): Use std::__addressof.
* include/std/tuple (operator=(const tuple<_UElements...>&)):
SFINAE in return type.
(operator=(tuple<_UElements...>&&)): Likewise.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.

From-SVN: r242390
2016-11-14 17:30:37 +02:00
Jason Merrill e7555e42d0 Improve various diagnostic issues.
* call.c (build_new_method_call_1): Include template arguments in
	error message.
	(print_error_for_call_failure): Likewise.
	(build_new_function_call): Pass them in.
	* name-lookup.c (supplement_binding_1): Don't complain about a
	conflict with an erroneous declaration.
	* error.c (dump_decl): Fix printing of alias declaration.
	* decl.c (make_typename_type): Call cxx_incomplete_type_error.
	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
	* semantics.c (perform_koenig_lookup): Don't wrap an error in
	TEMPLATE_ID_EXPR.

From-SVN: r242376
2016-11-13 23:58:45 -05:00
Jonathan Wakely b2343559f2 Add array support to std::shared_ptr for C++17
* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/manual/status.html: Regenerate.
	* include/bits/shared_ptr.h (shared_ptr(unique_ptr<_Yp, _Del>)): Add
	extension constructor to maintain C++14 behaviour.
	* include/bits/shared_ptr_base.h (__sp_array_delete): Add new struct.
	(__shared_count(_Ptr, false_type), __shared_count(_Ptr, true_type)):
	New constructors.
	(__sp_compatible_with, __sp_is_constructible): Add specializations
	for array support.
	(__sp_is_constructible_arr, __sp_is_constructible_arrN): New helpers.
	(__shared_ptr_access): New base class for observer member functions.
	(__shared_ptr::element_type): Use remove_extent.
	(__shared_ptr::_UniqCompatible): Add __sp_compatible_with check.
	(__shared_ptr(_Yp*)): Use tag dispatching to call new __shared_count
	constructor.
	(__shared_ptr(unique_ptr<_Yp, _Del>)): Add extension constructor.
	(__shared_ptr::operator*, __shared_ptr::operator->): Remove and
	inherit from __shared_ptr_access base class.
	(__shared_ptr::__has_esft_base): Return false for array types.
	(__weak_ptr::element_type): Use remove_extent.
	* include/experimental/bits/shared_ptr.h (__libfund_v1): Remove.
	(__shared_ptr<__libfund_v1<_Tp>>): Remove specializations.
	(__wak_ptr<__libfund_v1<_Tp>>): Likewise.
	(experimental::__sp_compatible_v): Redefine using
	__sp_compatible_with.
	(experimental::__sp_is_constructible_v): Redefine using
	__sp_is_constructible.
	(get_deleter, operator<<): Change argument from __shared_ptr to
	shared_ptr.
	* testsuite/20_util/shared_ptr/cons/array.cc: New test.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Adjust for
	new behaviour.
	* testsuite/20_util/shared_ptr/observers/array.cc: Test observers for
	arrays.
	* testsuite/20_util/shared_ptr/observers/array_neg.cc: New test.

From-SVN: r242369
2016-11-13 22:57:45 +00:00
Jonathan Wakely c05986b936 Split <functional> into smaller pieces
* include/Makefile.am: Add <bits/refwrap.h> and <bits/std_function.h>.
	Order alphabetically.
	* include/Makefile.in: Regenerate.
	* include/bits/refwrap.h: New header.
	(_Maybe_get_result_type,_Weak_result_type_impl, _Weak_result_type)
	(_Reference_wrapper_base_impl, _Reference_wrapper_base)
	(reference_wrapper, ref, cref): Move here from <functional>.
	* include/bits/shared_ptr_base.h: Include <bits/refwrap.h> and
	<bits/stl_function.h> instead of <functional>.
	* include/bits/std_function.h: New header.
	(_Maybe_unary_or_binary_function, bad_function_call)
	(__is_location_invariant, _Nocopy_types, _Any_data)
	(_Simple_type_wrapper, _Function_base, _Function_handler, function):
	Move here from <functional>.
	* include/bits/unique_ptr.h: Include <bits/stl_function.h>.
	* include/std/functional: Include new headers and move components to
	them.
	* include/std/future: Include <bits/std_function.h> instead of
	<functional>.
	* include/std/mutex: Likewise.
	* include/std/regex: Likewise.
	* src/c++11/compatibility-thread-c++0x.cc: Include <functional>.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
	* testsuite/20_util/default_delete/void_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-error
	lines.
	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
	* testsuite/30_threads/packaged_task/49668.cc: Include <functional>.

From-SVN: r241410
2016-10-21 16:32:25 +01:00
Jonathan Wakely a2e0054e1d Prepare shared_ptr for array support
* include/backward/auto_ptr.h (__shared_ptr(auto_ptr&&))
	(shared_ptr(auto_ptr&&)): Adjust template parameter lists.
	* include/bits/shared_ptr.h (__sp_compatible_with)
	(__sp_is_constructible): New helper traits for shared_ptr.
	(shared_ptr::_Convertible): Replace with _Constructible.
	(shared_ptr::_Constructible, shared_ptr::_Assignable): Forward checks
	to base class.
	(shared_ptr::shared_ptr, shared_ptr::operator=): Constrain template
	with _Constructible and _Assignable.
	(shared_ptr::shared_ptr(shared_ptr<_Tp1>, _Tp*)): Use element_type
	instead of _Tp.
	(operator<): Likewise.
	(operator>): Define in terms of operator<.
	(static_pointer_cast, const_pointer_cast, dynamic_pointer_cast): Use
	element_type instead of _Tp.
	(reinterpret_pointer_cast): Define for C++17.
	(weak_ptr::_Convertible): Replace with _Constructible.
	(weak_ptr::_Constructible, weak_ptr::_Assignable): Forward checks
	to base class.
	(weak_ptr::weak_ptr, weak_ptr::operator=): Constrain templates
	with _Constructible and _Assignable.
	* include/bits/shared_ptr_base.h (__shared_ptr::_Convertible): Replace
	with _Compatible.
	(__shared_ptr::_SafeConv): New constraint for incoming raw pointers.
	(__shared_ptr::_Compatible): New constraint for converting from
	other types of shared_ptr and weak_ptr.
	(__shared_ptr::_Assignable): Define in terms of _Compatible.
	(__shared_ptr::_UniqCompatible, __shared_ptr::_UniqAssignable): New
	constraints for converting from unique_ptr.
	(__shared_ptr::__shared_ptr, __shared_ptr::operator=): Constrain
	template with _SaveConf, _Compatible and _Assignable. Remove
	__glibcxx_function_requires concept checks. Add static assertion for
	deleter expression being well-formed.
	(__shared_ptr::__shared_ptr(__shared_ptr<_Tp1>, _Tp*))
	(__shared_ptr::operator*, __shared_ptr::operator->)
	(__shared_ptr::get, __shared_ptr::_M_ptr): Use element_type instead
	of _Tp.
	(operator<): Likewise.
	(operator>): Define in terms of operator<.
	(static_pointer_cast, const_pointer_cast, dynamic_pointer_cast): Use
	element_type instead of _Tp.
	(reinterpret_pointer_cast): Define for C++17.
	(weak_ptr::_Convertible): Replace with _Compatible.
	(weak_ptr::_Compatible, weak_ptr::_Assignable): New constraints for
	conversions from other types of weak_ptr and shared_ptr.
	(__weak_ptr::__weak_ptr, __weak_ptr::operator=): Constrain templates
	with _Constructible and _Assignable.
	(__weak_ptr::_M_ptr): Use element_type instead of _Tp.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Adjust
	dg-error pattern.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Test conversions.
	* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: New test.

From-SVN: r241373
2016-10-20 13:07:45 +01:00
Jonathan Wakely 1d6360c85b PR78052 Define std::allocator<void>::{construct,destroy}
PR libstdc++/78052
	* include/bits/allocator.h (allocator<void>::construct)
	(allocator<void>::destroy): Define.
	* testsuite/20_util/allocator/void.cc: New test.

From-SVN: r241365
2016-10-20 11:13:10 +01:00
Jonathan Wakely 4f63d614fa Add more tests for enable_shared_from_this ambiguities
* testsuite/20_util/enable_shared_from_this/56383.cc: Add tests for
	additional ambiguous cases.

From-SVN: r241364
2016-10-20 11:13:04 +01:00
Jonathan Wakely 181f50b626 Fix incorrect comment about std::auto_ptr
* include/backward/auto_ptr.h (dauto_ptr): Correct comment about
	conversions from auto_ptr<Derived> rvalues to auto_ptr<Base>.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Remove redundant dg-error
	directives that only match notes, not errors.

From-SVN: r241349
2016-10-19 19:18:43 +01:00
Jonathan Wakely d40627f933 Move negative unique_ptr tests to new file
* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Move negative tests
	to new file.
	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: New file.  Fix
	test for incompatible deleters to not also use incompatible types.
	Add tests for incompatible array types.

From-SVN: r241332
2016-10-19 11:10:54 +01:00
Jonathan Wakely e182393e31 PR77990 refactor unique_ptr to encapsulate tuple
PR libstdc++/77990
	* include/bits/unique_ptr.h (__uniq_ptr_impl): New type to
	encapsulate implementation details.
	(unique_ptr::unique_ptr(_Up)): Don't copy deleter object.
	(unique_ptr::get, unique_ptr::get_deleter, unique_ptr::release):
	Call member functions of implementation object.
	(unique_ptr<T[], D>): Likewise.
	* python/libstdcxx/v6/printers.py (UniquePointerPrinter): Adjust for
	new implementation.
	* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-error
	lines.
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/77990.cc: New test.

From-SVN: r241330
2016-10-19 10:34:57 +01:00
Jonathan Wakely 74cf9664e8 PR77987 Fix unique_ptr<T[], D>::reset(U) for T != U
PR libstdc++/77987
	* include/bits/unique_ptr.h (unique_ptr<T[], D>::reset<U>(U)): Copy
	value to pointer of the correct type to swap, to support conversions
	allowed by LWG 2118 / N4089.
	* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Move test for
	incompatible deleters from ...
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: ... here.
	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Move tests for
	incompatible pointers to ...
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: ... here. Move
	destructor definition to base class. Test for invalid derived-to-base
	conversion.

From-SVN: r241235
2016-10-17 13:00:44 +01:00
Jonathan Wakely de1d079440 Make std::bind use std::invoke
* include/std/functional (_Mu<A, false, true>, _Mu<A, true, false>):
	Simplify forwarding from tuple of references.
	(_Maybe_wrap_member_pointer): Remove.
	(_Bind::__call, _Bind::__call_c, _Bind::__call_v, _Bind::__call_c_v):
	Use std::__invoke.
	(_Bind::_Mu_type, _Bind::_Res_type_impl, _Bind::_Res_type)
	(_Bind::__dependent, _Bind::_Res_type_cv): New helpers to simplify
	return type deduction.
	(_Bind::operator(), _Bind::operator() const): Use new helpers.
	(_Bind::operator() volatile, _Bind::operator() const volatile):
	Likewise. Add deprecated attribute for C++17 mode.
	(_Bind_result::__call): Use std::__invoke.
	(_Bind_result::operator() volatile)
	(_Bind_result::operator() const volatile): Add deprecated attribute.
	(_Bind_helper::__maybe_type, _Bindres_helper::__maybe_type): Remove.
	(_Bind_helper, _Bindres_helper): Don't use _Maybe_wrap_member_pointer.
	(bind, bind<R>): Don't use __maybe_type.
	* src/c++11/compatibility-thread-c++0x.cc
	(_Maybe_wrap_member_pointer): Define here for compatibility symbols.
	* testsuite/20_util/bind/68912.cc: Don't test volatile-qualification
	in C++17 mode.
	* testsuite/20_util/bind/cv_quals.cc: Likewise.
	* testsuite/20_util/bind/cv_quals_2.cc: Likewise.

From-SVN: r241178
2016-10-14 20:04:56 +01:00
Jonathan Wakely a4744f620f Avoid copies in std::scoped_allocator_adaptor piecewise construction
* include/std/scoped_allocator (scoped_allocator_adaptor): Forward
	piecewise construction arguments as tuples of references, to avoid
	copies (related to LWG 2511).
	* testsuite/20_util/scoped_allocator/construct_pair.cc: New test.

From-SVN: r241169
2016-10-14 17:12:21 +01:00
Jonathan Wakely ace4c2f060 PR65122 extended alignment support in allocators
PR libstdc++/65122
	* include/ext/malloc_allocator.h (malloc_allocator::allocate): Use
	aligned_alloc for types with extended alignment if available,
	otherwise throw bad_alloc if malloc doesn't return a suitable value.
	* include/ext/bitmap_allocator.h (bitmap_allocator::allocate)
	(bitmap_allocator::deallocate): Use aligned new/delete for types with
	extended alignment.
	* include/ext/mt_allocator.h (__mt_alloc::allocate)
	(__mt_alloc::deallocate): Likewise.
	* include/ext/new_allocator.h (new_allocator::allocate)
	(new_allocator::deallocate): Likewise.
	* include/ext/pool_allocator.h (__pool_alloc::allocate)
	(__pool_alloc::deallocate): Likewise.
	* testsuite/20_util/allocator/overaligned.cc: New test.
	* testsuite/ext/bitmap_allocator/overaligned.cc: New test.
	* testsuite/ext/malloc_allocator/overaligned.cc: New test.
	* testsuite/ext/mt_allocator/overaligned.cc: New test.
	* testsuite/ext/new_allocator/overaligned.cc: New test.
	* testsuite/ext/pool_allocator/overaligned.cc: New test.

From-SVN: r241158
2016-10-14 13:03:47 +01:00
Jonathan Wakely d67dd0be94 Avoid #include <functional> in other headers
* include/bits/shared_ptr_base.h: Include <functional>.
	[!__cpp_rtti]: Do not include <typeinfo>.
	* include/experimental/array: Do not include <functional>.
	* include/experimental/memory: Include <bits/functional_hash.h>
	instead of <functional>.
	* include/experimental/propagate_const: Include <bits/stl_function.h>,
	<bits/functional_hash.h>, and <bits/move.h> instead of <functional>.
	* include/experimental/tuple: Do not include <functional>.
	* include/std/future: Include <functional>.
	* include/std/memory: Do not include <functional>.
	* include/std/mutex: [_GLIBCXX_HAVE_TLS]: Likewise.
	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Add
	missing includes.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/
	1.cc: Likewise.
	* testsuite/30_threads/call_once/60497.cc: Likewise.
	* testsuite/30_threads/lock/2.cc: Likewise.
	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
	* testsuite/experimental/algorithm/sample.cc: Likewise.
	* testsuite/experimental/array/make_array.cc: Likewise.
	* testsuite/experimental/array/neg.cc: Likewise. Adjust dg-error line.
	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
	Adjust dg-error lines.
	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.

From-SVN: r241131
2016-10-13 17:59:19 +01:00
Jonathan Wakely 0c0d2a4cf0 Replace non-constexpr decrement in std::chrono::floor
* include/std/chrono (floor): Replace non-constexpr operation.
	* testsuite/20_util/duration_cast/rounding.cc: Test conversion to
	durations with floating pointer representations.

From-SVN: r241122
2016-10-13 15:42:09 +01:00
Jonathan Wakely cc06c7f652 Fix exception-specifications for std::_Not_fn
* include/std/functional (_Not_fn): Make exception specifications
	depend on whether negating the result can throw.
	* testsuite/20_util/not_fn/1.cc: Move to ...
	* testsuite/20_util/function_objects/not_fn/1.cc: ... here. Add tests
	for types that can throw when negated and that cannot be negated.

From-SVN: r241091
2016-10-13 11:19:24 +01:00
Jonathan Wakely 3e0c9334e9 Fix exception-specification of std::invoke
* include/bits/invoke.h (__invoke): Fix exception-specification.
	* include/std/functional (invoke): Likewise.
	* testsuite/20_util/function_objects/invoke/1.cc: New test.

From-SVN: r241089
2016-10-13 09:55:40 +01:00
Paolo Carlini 118c842441 testsuite_hooks.h: Rewrite VERIFY in terms of __builtin_printf and __builtin_abort.
2016-10-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/util/testsuite_hooks.h: Rewrite VERIFY in terms of
	__builtin_printf and __builtin_abort.
	* testsuite/lib/libstdc++.exp: Remove _GLIBCXX_ASSERT use.
	* scripts/testsuite_flags.in: Likewise.
	* testsuite/22_locale/time_get/get/char/1.cc: Likewise.
	* testsuite/22_locale/time_get/get/char/2.cc: Likewise.
	* testsuite/22_locale/time_get/get/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/close/char/4879.cc: Likewise, adjust.
	* testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/26777.cc: Likewise.
	* testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/objects/char/7.cc: Likewise.
	* testsuite/27_io/objects/char/9661-1.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/7.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
	* testsuite/18_support/50594.cc: Remove 'test' variable, adjust.
	* testsuite/18_support/bad_alloc/what.cc: Likewise.
	* testsuite/18_support/bad_cast/what.cc: Likewise.
	* testsuite/18_support/bad_exception/what.cc: Likewise.
	* testsuite/18_support/bad_typeid/what.cc: Likewise.
	* testsuite/18_support/exception/38732.cc: Likewise.
	* testsuite/18_support/exception/what.cc: Likewise.
	* testsuite/18_support/exception_ptr/64241.cc: Likewise.
	* testsuite/18_support/exception_ptr/current_exception.cc: Likewise.
	* testsuite/18_support/exception_ptr/lifespan.cc: Likewise.
	* testsuite/18_support/exception_ptr/make_exception_ptr.cc: Likewise.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
	* testsuite/18_support/nested_exception/cons.cc: Likewise.
	* testsuite/18_support/nested_exception/nested_ptr.cc: Likewise.
	* testsuite/18_support/nested_exception/rethrow_if_nested.cc: Likewise.
	* testsuite/18_support/nested_exception/rethrow_nested.cc: Likewise.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: Likewise.
	* testsuite/18_support/numeric_limits/char16_32_t.cc: Likewise.
	* testsuite/18_support/numeric_limits/digits10.cc: Likewise.
	* testsuite/18_support/numeric_limits/dr559.cc: Likewise.
	* testsuite/18_support/numeric_limits/epsilon.cc: Likewise.
	* testsuite/18_support/numeric_limits/is_iec559.cc: Likewise.
	* testsuite/18_support/numeric_limits/is_signed.cc: Likewise.
	* testsuite/18_support/numeric_limits/lowest.cc: Likewise.
	* testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
	* testsuite/18_support/numeric_limits/min_max.cc: Likewise.
	* testsuite/18_support/numeric_limits/specialization_default_values.cc:
	Likewise.
	* testsuite/18_support/type_info/hash_code.cc: Likewise.
	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
	* testsuite/19_diagnostics/error_category/cons/default.cc: Likewise.
	* testsuite/19_diagnostics/error_category/operators/equal.cc: Likewise.
	* testsuite/19_diagnostics/error_category/operators/
	not_equal.cc: Likewise.
	* testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
	* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
	* testsuite/19_diagnostics/error_code/modifiers/39882.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_condition/cons/1.cc: Likewise.
	* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
	* testsuite/19_diagnostics/error_condition/modifiers/39881.cc: 
	Likewise.
	* testsuite/19_diagnostics/error_condition/operators/bool.cc: Likewise.
	* testsuite/19_diagnostics/error_condition/operators/equal.cc:
	Likewise.
	* testsuite/19_diagnostics/error_condition/operators/not_equal.cc:
	Likewise.
	* testsuite/19_diagnostics/logic_error/what-1.cc: Likewise.
	* testsuite/19_diagnostics/logic_error/what-2.cc: Likewise.
	* testsuite/19_diagnostics/logic_error/what-3.cc: Likewise.
	* testsuite/19_diagnostics/logic_error/what-big.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-1.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-2.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-3.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-big.cc: Likewise.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-1.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-2.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-3.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-big.cc: Likewise.
	* testsuite/20_util/addressof/1.cc: Likewise.
	* testsuite/20_util/align/1.cc: Likewise.
	* testsuite/20_util/align/2.cc: Likewise.
	* testsuite/20_util/allocator/1.cc: Likewise.
	* testsuite/20_util/allocator/10378.cc: Likewise.
	* testsuite/20_util/allocator/8230.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/allocate_hint.cc:
	Likewise.
	* testsuite/20_util/allocator_traits/members/construct.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/max_size.cc: Likewise.
	* testsuite/20_util/any/assign/exception.cc: Likewise.
	* testsuite/20_util/auto_ptr/1.cc: Likewise.
	* testsuite/20_util/auto_ptr/2.cc: Likewise.
	* testsuite/20_util/auto_ptr/3.cc: Likewise.
	* testsuite/20_util/auto_ptr/4.cc: Likewise.
	* testsuite/20_util/auto_ptr/5.cc: Likewise.
	* testsuite/20_util/auto_ptr/6.cc: Likewise.
	* testsuite/20_util/auto_ptr/7.cc: Likewise.
	* testsuite/20_util/bind/all_bound.cc: Likewise.
	* testsuite/20_util/bind/conv_result.cc: Likewise.
	* testsuite/20_util/bind/cv_quals.cc: Likewise.
	* testsuite/20_util/bind/cv_quals_2.cc
	* testsuite/20_util/bind/nested.cc: Likewise.
	* testsuite/20_util/bind/placeholders.cc: Likewise.
	* testsuite/20_util/bind/ref.cc: Likewise.
	* testsuite/20_util/bind/ref2.cc: Likewise.
	* testsuite/20_util/common_type/requirements/typedefs-1.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/58850.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
	* testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
	* testsuite/20_util/duration/cons/1.cc: Likewise.
	* testsuite/20_util/duration/cons/2.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/members/assign.cc:
	Likewise.
	* testsuite/20_util/exchange/1.cc: Likewise.
	* testsuite/20_util/forward/a.cc: Likewise.
	* testsuite/20_util/forward/b.cc: Likewise.
	* testsuite/20_util/forward/d.cc: Likewise.
	* testsuite/20_util/function/1.cc: Likewise.
	* testsuite/20_util/function/2.cc: Likewise.
	* testsuite/20_util/function/3.cc: Likewise.
	* testsuite/20_util/function/4.cc: Likewise.
	* testsuite/20_util/function/43397.cc: Likewise.
	* testsuite/20_util/function/5.cc: Likewise.
	* testsuite/20_util/function/6.cc: Likewise.
	* testsuite/20_util/function/7.cc: Likewise.
	* testsuite/20_util/function/8.cc: Likewise.
	* testsuite/20_util/function/9.cc: Likewise.
	* testsuite/20_util/function/assign/move.cc: Likewise.
	* testsuite/20_util/function/cons/move.cc: Likewise.
	* testsuite/20_util/function_objects/dr660.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_document_words.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
	* testsuite/20_util/hash/operators/size_t.cc: Likewise.
	* testsuite/20_util/hash/quality.cc: Likewise.
	* testsuite/20_util/integral_constant/static_definition.cc: Likewise.
	* testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
	* testsuite/20_util/is_function/24808.cc: Likewise.
	* testsuite/20_util/is_object/24808.cc: Likewise.
	* testsuite/20_util/move_if_noexcept/1.cc: Likewise.
	* testsuite/20_util/move_if_noexcept/constexpr.cc: Likewise.
	* testsuite/20_util/owner_less/cmp.cc: Likewise.
	* testsuite/20_util/pair/1.cc: Likewise.
	* testsuite/20_util/pair/2.cc: Likewise.
	* testsuite/20_util/pair/3.cc: Likewise.
	* testsuite/20_util/pair/4.cc: Likewise.
	* testsuite/20_util/pair/make_pair/constexpr.cc: Likewise.
	* testsuite/20_util/pair/moveable.cc: Likewise.
	* testsuite/20_util/pair/piecewise.cc: Likewise.
	* testsuite/20_util/pair/swap.cc: Likewise.
	* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
	* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
	* testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
	* testsuite/20_util/ratio/cons/cons1.cc: Likewise.
	* testsuite/20_util/ratio/operations/45866.cc: Likewise.
	* testsuite/20_util/ratio/operations/47913.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops2.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops3.cc: Likewise.
	* testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
	* testsuite/20_util/scoped_allocator/1.cc: Likewise.
	* testsuite/20_util/scoped_allocator/2.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
	* testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
	* testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/io.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/owner_before.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	move_iterators/1.cc: Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	move_iterators/1.cc: Likewise.
	* testsuite/20_util/temporary_buffer.cc: Likewise.
	* testsuite/20_util/time_point/1.cc: Likewise.
	* testsuite/20_util/time_point/2.cc: Likewise.
	* testsuite/20_util/time_point/3.cc: Likewise.
	* testsuite/20_util/time_point/nonmember/constexpr.cc: Likewise.
	* testsuite/20_util/tuple/48476.cc: Likewise.
	* testsuite/20_util/tuple/comparison_operators/comparisons.cc:
	Likewise.
	* testsuite/20_util/tuple/cons/allocators.cc: Likewise.
	* testsuite/20_util/tuple/cons/assignment.cc: Likewise.
	* testsuite/20_util/tuple/cons/big_tuples.cc: Likewise.
	* testsuite/20_util/tuple/cons/constructor.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/23978.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/48476.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc:
	Likewise.
	* testsuite/20_util/tuple/creation_functions/make_tuple.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/tie.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/tie2.cc: Likewise.
	* testsuite/20_util/tuple/cv_tuple_size.cc: Likewise.
	* testsuite/20_util/tuple/element_access/get.cc: Likewise.
	* testsuite/20_util/tuple/element_access/get_by_type.cc: Likewise.
	* testsuite/20_util/tuple/moveable.cc: Likewise.
	* testsuite/20_util/tuple/swap.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size.cc: Likewise.
	* testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
	* testsuite/20_util/typeindex/hash.cc: Likewise.
	* testsuite/20_util/typeindex/hash_code.cc: Likewise.
	* testsuite/20_util/typeindex/name.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/move.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/move_array.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/nullptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/nullptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/pointer.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/pointer_array.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/ptr_deleter.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
	* testsuite/20_util/unique_ptr/hash/1.cc: Likewise.
	* testsuite/20_util/unique_ptr/modifiers/43183.cc: Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/
	comparisons.cc: Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/
	comparisons_array.cc: Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc:
	Likewise.
	* testsuite/20_util/uses_allocator/construction.cc: Likewise.
	* testsuite/20_util/uses_allocator/value.cc: Likewise.
	* testsuite/20_util/variant/run.cc: Likewise.
	* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
	* testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
	* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
	Likewise.
	* testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
	* testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
	* testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc:
	Likewise.
	* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
	Likewise.
	* testsuite/21_strings/basic_string/capacity/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/4.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/42261.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/5.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/6.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/8.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/moveable.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/char/moveable2.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/3.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/4.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/5.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/6.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc: Likewise.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string/element_access/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/element_access/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string/element_access/char/4.cc: Likewise.
	* testsuite/21_strings/basic_string/element_access/char/58163.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/char/empty.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/char/front_back.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/
	front_back.cc: Likewise.
	* testsuite/21_strings/basic_string/init-list.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/10.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/11.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/
	28277.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/6.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/8.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/char/9.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/pod/
	10081-in.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/pod/
	10081-out.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
	10.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
	11.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/
	28277.cc: Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc:
	Likewise.
	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/char/
	move_assign.cc: Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
	move_assign.cc: Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/6.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	stoull.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	to_string.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	dr1261.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stod.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stof.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoi.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stol.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stold.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoll.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoul.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	stoull.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/
	to_wstring.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/compare/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/char/13650.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/
	13650.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/data/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/substr/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/substr/wchar_t/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/char/4.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/wchar_t/3.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/wchar_t/4.cc: Likewise.
	* testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
	* testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/
	empty.cc: Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/
	front_back.cc: Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/
	empty.cc: Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/
	front_back.cc: Likewise.
	* testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
	char/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
	wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
	char/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
	wchar_t/1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/char/
	13650.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
	13650.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
	2.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
	3.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/find/wchar_t/
	4.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/
	2.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/char/
	3.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
	2.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/
	3.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/string_conversion/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/substr/char/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/
	1.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operators/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/c_strings/char/1.cc: Likewise.
	* testsuite/21_strings/c_strings/wchar_t/1.cc: Likewise.
	* testsuite/21_strings/char_traits/requirements/char/1.cc: Likewise.
	* testsuite/21_strings/char_traits/requirements/char/57704.cc:
	Likewise.
	* testsuite/21_strings/char_traits/requirements/short/1.cc: Likewise.
	* testsuite/21_strings/char_traits/requirements/wchar_t/1.cc: Likewise.

	* doc/xml/manual/test.xml: Fix typo.

From-SVN: r241069
2016-10-12 16:13:06 +00:00
Jonathan Wakely 08a53a2eda Add missing return to uninitialized_default_construct_n
* include/bits/stl_uninitialized.h
	(__uninitialized_default_novalue_n_1<true>): Add missing return.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/
	1.cc: Check return values of uninitialized_xxx_n algorithms.

From-SVN: r241033
2016-10-12 12:20:35 +01:00
Ville Voutilainen 1725d05d19 Make any's copy assignment operator exception-safe,
don't copy the underlying value when any is moved,
make in_place constructors explicit.
* include/std/any (any(in_place_type_t<_ValueType>, _Args&&...)):
Make explicit.
(any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
Likewise.
(operator=(const any&)): Make strongly exception-safe.
(operator=(any&&)): reset() unconditionally in the case where
rhs has a value.
(operator=(_ValueType&&)): Indent the return type.
(_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
* testsuite/20_util/any/assign/2.cc: Adjust.
* testsuite/20_util/any/assign/exception.cc: New.
* testsuite/20_util/any/cons/2.cc: Adjust.
* testsuite/20_util/any/cons/explicit.cc: New.
* testsuite/20_util/any/misc/any_cast_neg.cc: Ajust.

From-SVN: r240951
2016-10-11 01:08:58 +03:00
Jonathan Wakely 9e023e3321 Implement constexpr std::addressof for C++17
* doc/xml/manual/intro.xml: Document DR 2296 status.
	* doc/xml/manual/status_cxx2017.xml: Update status.
	* include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
	call __builtin_addressof.
	(addressof): Add _GLIBCXX17_CONSTEXPR.
	* testsuite/20_util/addressof/requirements/constexpr.cc: New test.
	* testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
	* testsuite/20_util/forward/f_neg.cc: Likewise.

From-SVN: r240929
2016-10-10 16:34:28 +01:00
Jonathan Wakely 46942c8101 Define std::allocator<T>::is_always_equal
* include/bits/allocator.h (allocator<T>::is_always_equal): Define.
	* testsuite/20_util/allocator/requirements/typedefs.cc: Test for
	is_always_equal.
	* testsuite/util/testsuite_allocator.h
	(uneq_allocator::is_always_equal): Define as false_type.

From-SVN: r240920
2016-10-10 13:17:45 +01:00
Jonathan Wakely 208b8b69b6 Add noexcept to enable_shared_from_this::weak_from_this
* include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
	Add noexcept.
	* include/bits/shared_ptr_base.h
	(__enable_shared_from_this::weak_from_this): Likewise.
	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	Test exception-specification of weak_from_this.

From-SVN: r240917
2016-10-10 12:44:05 +01:00
Jason Merrill 36cbfdb066 Further P0135 refinement.
* call.c (build_user_type_conversion_1): Consider conversions from
	a single element in an initializer-list.
	(build_temp): Undo early_elide_copy change.
	(build_over_call): Check that we don't try to copy a TARGET_EXPR
	in C++17 mode.  Set user_conv_p here.
	(convert_like_real): Not here.
	(check_self_delegation): Split out from...
	(build_special_member_call): ...here.  Handle C++17 copy elision.
	* cvt.c (early_elide_copy): Remove.
	(ocp_convert): Undo early_elide_copy change.
	* except.c (build_throw): Likewise.
	* init.c (expand_default_init): Likewise.
	* typeck.c (cp_build_modify_expr): Likewise.

From-SVN: r240889
2016-10-08 12:23:26 -04:00
Jonathan Wakely 873c7d5ade Implement std::has_unique_object_representations
* doc/xml/manual/status_cxx2017.xml: Update status.
	* include/std/type_traits (has_unique_object_representations): Define.
	* testsuite/20_util/has_unique_object_representations/value.cc: New.
	* testsuite/20_util/has_unique_object_representations/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/has_unique_object_representations/requirements/
	typedefs.cc: New.

From-SVN: r240868
2016-10-07 19:02:43 +01:00
Jonathan Wakely 937ec71aba Make std::scoped_allocator_adaptor's OUTERMOST recursive
* doc/xml/manual/status_cxx2011.xml: Update status.
	* include/std/scoped_allocator (__outer_allocator_t, __outermost_type):
	New helpers for recursive OUTERMOST.
	(__outermost): Use __outermost_type::_S_outermost.
	(__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove.
	(scoped_allocator_adaptor::__outermost_alloc_traits): Use new
	__outermost_type helper.
	* testsuite/20_util/scoped_allocator/outermost.cc: New test.

From-SVN: r240844
2016-10-06 22:22:35 +01:00
Jonathan Wakely aaae096a1a 70564 fix newly-added tests for not_fn
PR libstdc++/70564
	* testsuite/20_util/not_fn/1.cc: Fix test.
	* testsuite/experimental/functional/not_fn.cc: Likewise.

From-SVN: r240784
2016-10-05 13:40:31 +01:00
Jonathan Wakely 78ec9c15be PR 70564 disambiguate constructors for not_fn call wrapper
PR libstdc++/70564
	* include/experimental/functional (_Not_fn): Remove.
	(not_fn): Use std::_Not_fn.
	* include/std/functional (_Not_fn): Add second parameter to
	disambiguate copying from initialization by not_fn. Define for C++14.
	(not_fn): Add second argument to initialization.
	* testsuite/20_util/not_fn/1.cc: Copy call wrapper using
	direct-initialization.

From-SVN: r240778
2016-10-05 13:01:36 +01:00
Jonathan Wakely e347987da8 Fix libstdc++ versioned namespace build
PR libstdc++/68323
	PR libstdc++/77794
	* config/abi/pre/gnu-versioned-namespace.ver: Add exports for
	__cxa_thread_atexit and __gnu_cxx::__freeres.
	* include/Makefile.am: Add <experimental/bits/lfts_config.h>
	* include/Makefile.in: Regenerate.
	* include.bits/basic_string.h: Fix nesting of versioned namespaces.
	* include/bits/c++config: Declare versioned namespaces for literals.
	* include/bits/regex.h (basic_regex, match_results): Add workarounds
	for PR c++/59256.
	* include/bits/uniform_int_dist.h: Fix nesting of versioned namespace.
	* include/std/chrono: Likewise.
	* include/std/complex: Likewise.
	* include/std/string_view: Likewise.
	* include/std/variant: Likewise. Add workaround for PR c++/59256.
	* include/experimental/bits/fs_fwd.h: Declare versioned namespace.
	* include/experimental/bits/lfts_config.h: Declare versioned
	namespaces.
	* include/experimental/algorithm: Include
	<experimental/bits/lfts_config.h>.
	* include/experimental/any: Likewise.
	* include/experimental/bits/erase_if.h: Likewise.
	* include/experimental/chrono: Likewise.
	* include/experimental/functional: Likewise.
	* include/experimental/memory_resource: Likewise.
	* include/experimental/optional: Likewise.
	* include/experimental/propagate_const: Likewise.
	* include/experimental/random: Likewise.
	* include/experimental/ratio: Likewise.
	* include/experimental/system_error: Likewise.
	* include/experimental/tuple: Likewise.
	* include/experimental/type_traits: Likewise.
	* include/experimental/utility: Likewise.
	* include/experimental/string_view: Likewise. Fix nesting of
	versioned namespaces.
	* include/experimental/bits/string_view.tcc: Reopen inline namespace
	for non-inline function definitions.
	* testsuite/17_intro/using_namespace_std_exp_neg.cc: New test.
	* testsuite/20_util/duration/literals/range.cc: Adjust dg-error line.
	* testsuite/experimental/any/misc/any_cast_neg.cc: Likewise.
	* testsuite/experimental/propagate_const/assignment/move_neg.cc:
	Likewise.
	* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
	* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.

From-SVN: r240714
2016-10-03 15:35:28 +01:00
Ville Voutilainen 3fe2ddae4b re PR libstdc++/77802 (Boost Fiber doesn't compile)
PR libstdc++/77802
    * testsuite/20_util/tuple/77802.cc: New.

    Revert:
    2016-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
    Implement LWG 2729 for tuple.
    * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
    Suppress conditionally.
    (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
    (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
    (_Tuple_impl(const _Head&)): Constrain.
    (_Tuple_impl(_UHead&&)): Likewise.
    (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
    (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
    (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
    (operator=(const tuple&)): Enable conditionally.
    (operator=(tuple&&)): Suppress conditionally.
    (operator=(const tuple<_UElements...>&)): Constrain.
    (operator=(tuple<_UElements...>&&)): Likewise.
    (operator=(const tuple&)): Enable conditionally (2-param tuple).
    (operator=(tuple&&)): Suppress conditionally (2-param tuple).
    (operator=(const tuple<_U1, _U2>&)): Constrain.
    (operator=(tuple<_U1, _U2>&&)): Likewise.
    (operator=(const pair<_U1, _U2>&)): Likewise.
    (operator=(pair<_U1, _U2>&&)): Likewise.
    * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
    * testsuite/20_util/tuple/tuple_traits.cc: New.

From-SVN: r240709
2016-10-03 14:06:53 +03:00
Ville Voutilainen a181f67231 Make optional::reset noexcept, make optional::value work in constant expressions.
Make optional::reset noexcept, make optional::value
    work in constant expressions.
    * include/std/optional (_M_get): Make constexpr.
    (reset): Make noexcept.
    * testsuite/20_util/optional/assignment/7.cc: New.
    * testsuite/20_util/optional/observers/6.cc: New.

From-SVN: r240623
2016-09-29 18:20:28 +03:00
Jonathan Wakely 4940de303c Define feature macro and update C++17 library status
* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/*: Regenerate.
	* include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
	* testsuite/20_util/function_objects/searchers.cc: Test feature macro.

From-SVN: r240550
2016-09-27 16:39:51 +01:00
Ville Voutilainen 71ade764ad re PR libstdc++/77727 (Unwrapping std::optional constructor is not working for non-transferable object)
PR libstdc++/77727
    * include/std/optional (optional(const optional<_Up>&)):
    Default-initialize the base and use emplace.
    (optional(optional<_Up>&&)): Likewise.
    * testsuite/20_util/optional/cons/77727.cc: New.

From-SVN: r240511
2016-09-26 23:51:42 +03:00
Ville Voutilainen 8a4c4f1273 Fix tests on old arm platforms for optional.
* testsuite/20_util/optional/77288.cc: Don't use exception_ptr.

From-SVN: r240347
2016-09-22 14:01:29 +03:00
Jonathan Wakely 64626fcaaa Always qualify std::forward in <variant>
* include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
	std::forward and ::new. Cast pointer to void*.
	* include/std/variant (_Variant_storage, _Union, _Variant_base)
	(__access, __visit_invoke, variant, visit): Qualify std::forward.
	* testsuite/20_util/variant/compile.cc: Test for ADL problems.

From-SVN: r240344
2016-09-22 10:56:54 +01:00
Tim Shen c42bc5d73b variant (variant::operator=): Fix assignment on references.
* libstdc++-v3/include/std/variant (variant::operator=): Fix assignment
	on references.
	* libstdc++-v3/testsuite/20_util/variant/compile.cc: Add test.

From-SVN: r240343
2016-09-22 08:45:55 +00:00
Tim Shen 41501d1ae7 re PR libstdc++/77641 (std::variant copy-initialization fails for type with non-trivial constexpr ctor)
PR libstdc++/77641
	* include/std/variant (_Variant_storage::_Variant_storage):
	Change _Variant_storage's union to be default constructible.
	* testsuite/20_util/variant/compile.cc: New test.

From-SVN: r240340
2016-09-22 03:15:58 +00:00
Ville Voutilainen b641f833ba re PR libstdc++/77288 (Std::experimental::optional::operator= implementation is broken in gcc 6.1)
PR libstdc++/77288
	* include/std/optional (__is_optional_impl, __is_optional): Remove.
	(__converts_from_optional, __assigns_from_optional): New.
	(optional(_Up&&)): Use is_same instead of __is_optional.
	(optional(const optional<_Up>&)): Constrain with
	__converts_from_optional.
	(optional(optional<_Up>&&)): Likewise.
	(operator=(_Up&&)): Use is_same instead of __is_optional, check
	is_same and is_scalar.
	(operator=(const optional<_Up>&)): Constrain with
	__converts_from_optional and __assigns_from_optional.
	(operator=(optional<_Up>&&)): Likewise.
	* testsuite/20_util/optional/77288.cc: New.
	* testsuite/20_util/optional/cons/value.cc: Adjust.

From-SVN: r240324
2016-09-21 20:37:17 +03:00
Ville Voutilainen 5578678524 Implement LWG 2729 for tuple.
* include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
	Suppress conditionally.
	(_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
	(__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
	(_Tuple_impl(const _Head&)): Constrain.
	(_Tuple_impl(_UHead&&)): Likewise.
	(_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
	(_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
	(_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
	(operator=(const tuple&)): Enable conditionally.
	(operator=(tuple&&)): Suppress conditionally.
	(operator=(const tuple<_UElements...>&)): Constrain.
	(operator=(tuple<_UElements...>&&)): Likewise.
	(operator=(const tuple&)): Enable conditionally (2-param tuple).
	(operator=(tuple&&)): Suppress conditionally (2-param tuple).
	(operator=(const tuple<_U1, _U2>&)): Constrain.
	(operator=(tuple<_U1, _U2>&&)): Likewise.
	(operator=(const pair<_U1, _U2>&)): Likewise.
	(operator=(pair<_U1, _U2>&&)): Likewise.
	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
	* testsuite/20_util/tuple/tuple_traits.cc: New.

From-SVN: r240323
2016-09-21 20:25:16 +03:00
Ville Voutilainen f524d5b34a re PR libstdc++/77537 (pair constructors do not properly SFINAE)
PR libstdc++/77537
	Implement LWG 2729 for pair.
	* include/bits/stl_pair.h (_PCC): New.
	(_ConstructiblePair, _ImplicitlyConvertiblePair):
	Turn into static member functions of _PCC.
	(_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
	(_PCCP): New.
	(pair(const _T1&, const _T2&)): Adjust.
	(_PCCFP): New.
	(pair(const pair<_U1, _U2>&)): Adjust.
	(pair(_U1&&, const _T2&)): Likewise.
	(pair(const _T1&, _U2&&)): Likewise.
	(pair(_U1&&, _U2&&)): Likewise.
	(pair(pair<_U1, _U2>&&)): Likewise.
	(operator=(const pair&)): Make conditionally deleted.
	(operator=(pair&&)): Make conditionally suppressed.
	(operator=(const pair<_U1, _U2>&)): Constrain.
	(operator=(pair<_U1, _U2>&&): Likewise.
	* include/std/type_traits (__nonesuch): New.
	* testsuite/20_util/pair/traits.cc: New.

From-SVN: r240322
2016-09-21 19:48:35 +03:00
Ville Voutilainen 377f30c00f re PR libstdc++/77619 (uninitialized_meow_construct and friends not exception safe)
PR libstdc++/77619
	* include/bits/stl_construct.h: (_Construct_novalue): New.
	(_Destroy_n_aux, _Destroy_n): New.
	* include/bits/stl_uninitialized.h: (type_traits):
	New include in C++11 mode.
	(__uninitialized_default_novalue_1): New.
	(__uninitialized_default_novalue_n_1): Likewise.
	(__uninitialized_default_novalue): Likewise.
	(__uninitialized_default_novalue_n): Likewise.
	(__uninitialized_copy_n_pair): Likewise.
	(uninitialized_default_construct):
	Use __uninitialized_default_novalue.
	(uninitialized_default_construct_n):
	Use __uninitialized_default_novalue_n.
	(uninitialized_value_construct): Use __uninitialized_default.
	(uninitialized_value_construct_n): Use __uninitialized_default_n.
	(uninitialized_move): Use uninitialized_copy.
	(uninitialized_move_n): Use __uninitialized_copy_n_pair.
	(destroy_at): Use _Destroy.
	(destroy): Likewise.
	(destroy_n): Likewise.
	* testsuite/20_util/specialized_algorithms/
	memory_management_tools/1.cc: Add tests for exceptions,
	add tests for trivial cases for construct and move.

From-SVN: r240264
2016-09-20 18:15:36 +03:00
Ville Voutilainen 8e14a10cab Implement P0040R3, Extending memory management tools.
* include/bits/stl_uninitialized.h (utility): New include
	in C++17 mode.
	(uninitialized_default_construct): New.
	(uninitialized_default_construct_n): Likewise.
	(uninitialized_value_construct): Likewise.
	(uninitialized_value_construct_n): Likewise.
	(uninitialized_move): Likewise.
	(uninitialized_move_n): Likewise.
	(destroy_at, destroy, destroy_n): Likewise.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
	New.

From-SVN: r240122
2016-09-13 22:26:02 +03:00
Ville Voutilainen 5e8037ba97 Implement P0253R1, Fixing a design mistake in the searchers interface in Library Fundamentals.
Implement P0253R1, Fixing a design mistake in the searchers
	interface in Library Fundamentals.
	* include/std/functional: (utility): New include in C++17 mode.
	(default_searcher): Use a pair as return type, adjust the definition.
	(boyer_moore_searcher): Likewise.
	(boyer_moore_horspool_searcher): Likewise.
	* testsuite/20_util/function_objects/searchers.cc: Adjust.

From-SVN: r240094
2016-09-12 18:48:32 +03:00
Ville Voutilainen f82dfb8d4e Implement C++17 string searchers.
* include/std/functional: (unordered_map, vector): New includes
	in C++17 mode.
	(array, bits/stl_algo.h): Likewise.
	(default_searcher, __boyer_moore_map_base): New.
	(__boyer_moore_array_base, __is_std_equal_to): Likewise.
	(__boyer_moore_base_t, boyer_moore_searcher): Likewise.
	(boyer_moore_horspool_searcher, make_default_searcher): Likewise.
	(make_boyer_moore_searcher): Likewise.
	(make_boyer_moore_horspool_searcher): Likewise.
	* testsuite/20_util/function_objects/searchers.cc: New.

From-SVN: r240093
2016-09-12 18:48:07 +03:00
Jonathan Wakely 7663cae227 Constrain std::shared_ptr assignment and resetting
* include/bits/shared_ptr.h (_Assignable): New alias template.
	(shared_ptr::operator=(const shared_ptr<_Tp1>&))
	(shared_ptr::operator=(shared_ptr<_Tp1>&&))
	(shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
	_Assignable.
	* include/bits/shared_ptr_base.h (_Assignable): New alias template.
	(__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
	(__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
	(__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
	_Assignable.
	(__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
	(__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
	_Convertible.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
	match on any line.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
	expected errors. Remove unnecessary code.
	* testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.

From-SVN: r239898
2016-08-31 17:57:20 +01:00
Jonathan Wakely 3625264fb3 Add test accidentally not added in revision r239121
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	New test.

From-SVN: r239896
2016-08-31 17:57:09 +01:00
Ville Voutilainen 7875b41f1d re PR libstdc++/77395 (std::is_constructible is false for type constructible via implicit conversion operator affecting std::tuple)
PR libstdc++/77395
	* include/std/type_traits (is_constructible): Forward-declare...
	(__is_base_to_derived_ref): ...and use here.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/is_constructible/77395.cc: New.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/tuple/77395.cc: New.

From-SVN: r239870
2016-08-30 21:46:11 +03:00
Jonathan Wakely 10491e4c04 libstdc++/51960 move-construction for raw_storage_iterator
PR libstdc++/51960
	* doc/xml/manual/intro.xml: Document DR 2127 change.
	* doc/html/*: Regenerate.
	* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
	(operator++(), operator++(int)): Use injected class name.
	* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.

From-SVN: r239781
2016-08-26 14:11:29 +01:00
Jonathan Wakely 52066eae5d Use effective-target instead of -std options
* testsuite/*: Use { target c++11 } or { target c++14 } instead of
	using -std in dg-options.

From-SVN: r239777
2016-08-26 12:41:37 +01:00
Jonathan Wakely 94f54d47ca Add noexcept to std::function swap
PR libstdc++/77322
	* doc/xml/manual/intro.xml: Document DR 2062 change.
	* include/std/functional (function::swap): Add noexcept.
	(swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
	* testsuite/20_util/function/77322.cc: New test.

From-SVN: r239662
2016-08-22 17:47:34 +01:00
Jonathan Wakely 71c54f8ea2 Simplify dg-options for tests using pthreads
* testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
	*-*-solaris* instead of -pthreads.
	* testsuite/21_strings/basic_string/pthread4.cc : Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
	* testsuite/23_containers/list/pthread1.cc: Likewise.
	* testsuite/23_containers/list/pthread5.cc: Likewise.
	* testsuite/23_containers/map/pthread6.cc: Likewise.
	* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
	* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
	* testsuite/30_threads/shared_mutex/*: Likewise.
	* testsuite/ext/rope/pthread7-rope.cc: Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/thread/
	default_weaktoshared.cc: Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/thread/
	mutex_weaktoshared.cc: Likewise.
	* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
	dg-require-effective-target instead of using -std option.
	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
	Likewise.
	* testsuite/30_threads/async/*: Likewise.
	* testsuite/30_threads/call_once/*: Likewise.
	* testsuite/30_threads/condition_variable/*: Likewise.
	* testsuite/30_threads/condition_variable_any/*: Likewise.
	* testsuite/30_threads/future/*: Likewise.
	* testsuite/30_threads/lock/*: Likewise.
	* testsuite/30_threads/mutex/*: Likewise.
	* testsuite/30_threads/packaged_task/*: Likewise.
	* testsuite/30_threads/promise/*: Likewise.
	* testsuite/30_threads/recursive_mutex/*: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/*: Likewise.
	* testsuite/30_threads/shared_future/*: Likewise.
	* testsuite/30_threads/shared_lock/*: Likewise.
	* testsuite/30_threads/shared_timed_mutex/*: Likewise.
	* testsuite/30_threads/this_thread/*: Likewise.
	* testsuite/30_threads/thread/*: Likewise.
	* testsuite/30_threads/timed_mutex/*: Likewise.
	* testsuite/30_threads/try_lock/*: Likewise.
	* testsuite/30_threads/unique_lock/*: Likewise.

From-SVN: r239624
2016-08-19 17:36:07 +01:00
Jonathan Wakely e6ee5bfd68 Define std::not_fn for C++17
* doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
	* doc/html/*: Regenerate.
	* include/experimental/functional (_Not_fn, not_fn): Match C++17
	semantics.
	* include/std/functional (_Not_fn, not_fn): Define for C++17.
	* testsuite/20_util/not_fn/1.cc: New.
	* testsuite/experimental/functional/not_fn.cc: Test abstract class.
	Remove test for volatile-qualified wrapper.

From-SVN: r239623
2016-08-19 16:42:34 +01:00
Ville Voutilainen a577f786b6 Implement the latest proposed resolution of LWG 2756.
* include/std/optional (Optional_base(const _Tp&))
	(Optional_base(_Tp&&), using _Base::_Base): Remove.
	(optional(nullopt_t)): New.
	(optional(_Up&&)): Invoke base directly with in_place
	rather than creating a temporary, add default template
	argument, change constraints.
	(optional(const optional<_Up>&)): Invoke base directly
	with in_place, remove unnecessary constraints.
	(optional(optional<_Up>&& __t)): Likewise.
	(optional(in_place_t, _Args&&...)): New.
	(optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
	(operator=(_Up&&)): Add default template argument, change constraints.
	(operator=(const optional<_Up>&)): Put is_same first in the
	constraints.
	(operator=(optional<_Up>&&)): Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Add a test to
	verify assignment from something that can't be perfect-forwarded.
	* testsuite/20_util/optional/cons/value.cc: Add tests to verify
	that a nested optional is disengaged when constructed
	from a disengaged element type,	and to verify that assignments
	from an engaged element type engage the optional.

From-SVN: r239593
2016-08-18 23:33:57 +03:00
Tim Shen 197c757cb1 Implement <variant>
* include/Makefile.am: Add new file std/variant.
	* include/Makefile.in: Generated from Makefile.am.
	* include/bits/enable_special_members.h: Add a tag type to allow
	the construction in non-default constructor.
	* include/bits/uses_allocator.h: Add convenience traits to
	detect constructibility.
	* include/std/variant: Implement <variant>.
	* testsuite/20_util/variant/compile.cc: Compile-time tests.
	* testsuite/20_util/variant/run.cc: Runtime tests.

From-SVN: r239590
2016-08-18 20:31:26 +00:00
Jonathan Wakely 6fbf26cc57 Fix invalid dg-do directive
* testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
	directive and use effective target instead of dg-options.

From-SVN: r239548
2016-08-17 20:58:44 +01:00
Jonathan Wakely 18a20f3f25 Use effective target instead of -std in dg-options
* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
	instead of -std in dg-options.
	* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
	* testsuite/20_util/hash/quality.cc: Likewise.
	* testsuite/25_algorithms/heap/moveable.cc: Likewise.
	* testsuite/25_algorithms/heap/moveable2.cc: Likewise.
	* testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
	* testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
	* testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
	* testsuite/25_algorithms/sort/random_test.cc: Likewise.

From-SVN: r239547
2016-08-17 20:43:13 +01:00
Jonathan Wakely f771720378 Add c++11 effective target to tests for C++11 features
* testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
	* testsuite/27_io/rvalue_streams.cc: Likewise.

From-SVN: r239545
2016-08-17 20:23:15 +01:00
Jonathan Wakely 8fe79e7334 Adjust DG directives in libstdc++ XFAIL test
* testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
	-std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
	instead of dg-excess-errors.

From-SVN: r239535
2016-08-17 14:39:10 +01:00
Ville Voutilainen 5c578ae434 Implement LWG 2744 and LWG 2754.
* include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
	(any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
	(any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
	Likewise.
	(emplace(_Args&&...)): Likewise.
	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
	* include/std/utility: (__is_in_place_type_impl): New.
	(__is_in_place_type): Likewise.
	* testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
	emplace.
	* testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
	in_place constructor.
	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
	* testsuite/20_util/any/requirements.cc: Add a test for
	in_place-constructing a non-default-constructible type.

From-SVN: r239482
2016-08-15 18:06:09 +03:00
Ville Voutilainen 24299f6544 Add a feature macro for C++17 make_from_tuple.
* include/std/tuple (__cpp_lib_make_from_tuple): New.
	* testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.

From-SVN: r239480
2016-08-15 15:46:47 +03:00
Thomas Preud'homme f9657322cf re PR testsuite/72840 (PASS->NA: 20_util/ratio/cons/cons_overflow_neg.cc)
2016-08-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR libstdc++/72840
    * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
    syntax.

From-SVN: r239463
2016-08-15 09:14:15 +00:00
Ville Voutilainen ca1ab6be3b Implement C++17 make_from_tuple.
* include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
	* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.

From-SVN: r239372
2016-08-11 17:51:47 +03:00
Jonathan Wakely 6ef835c6c0 Use ::new to avoid finding overloaded operator new
PR libstdc++/72820
	* include/std/functional (_Function_base::_Base_manager::_M_clone):
	Qualify new operator.
	* testsuite/20_util/function/cons/72820.cc: New test.

From-SVN: r239191
2016-08-06 11:21:07 +01:00
Jonathan Wakely 3e9f67e6a2 Add std::apply for C++17
* doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
	* doc/html/manual/status.html: Regenerate.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/invoke.h: New header.
	(__invoke): Make constexpr. Add && to types in exception specification.
	* include/experimental/tuple (apply, __apply_impl): Fix non-reserved
	names. Include <bits/invoke.h> and use std::__invoke.
	* include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
	new header.
	(invoke): Add && to types in exception specification.
	* include/std/tuple (apply, __apply_impl): Define for C++17.
	* testsuite/20_util/tuple/apply/1.cc: New test.
	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
	lineno.

From-SVN: r239183
2016-08-06 01:06:02 +01:00
Jonathan Wakely 5f6acdfb0b Implement C++17 rounding functions for std::chrono (P0092R1)
* include/std/chrono (floor, ceil, round, abs): New for C++17.
	* testsuite/20_util/duration_cast/rounding.cc: New test.
	* testsuite/20_util/time_point_cast/rounding.cc: New test.
	* doc/xml/manual/status_cxx2017.xml: Update status table.
	* doc/html/manual/status.html: Regenerate.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
	dg-error lineno.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/duration/literals/range.cc: Likewise.

From-SVN: r239170
2016-08-05 14:52:59 +01:00
Jonathan Wakely 98e6e66233 Use __invoke in std::function internals
* include/std/functional (__callable_functor): Remove.
	(_Function_handler::_M_invoke): Use __invoke instead of
	__callable_functor or mem_fn.
	(function::_Callable): Use lvalue in result_of expression.
	(function): Remove TODO comments about allocators.
	* testsuite/20_util/function/cons/refqual.cc: New test.

From-SVN: r239166
2016-08-05 10:00:34 +01:00
Jonathan Wakely 42183d034d Define std::is_callable and std::is_nothrow_callable
* doc/xml/manual/status_cxx2017.xml: Update status table.
	* include/std/functional (__inv_unwrap): Move to <type_traits>.
	(__invoke_impl): Remove exception specifications.
	(__invoke, invoke): Add exception specifications using
	__is_nothrow_callable.
	* include/std/type_traits (__inv_unwrap): Move from <functional>.
	(__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
	(__is_callable, __is_nothrow_callable): New traits.
	(is_callable, is_callable_v): New C++17 traits.
	(is_nothrow_callable, is_nothrow_callable_v): Likewise.
	* testsuite/20_util/is_callable/requirements/
	explicit_instantiation.cc: New test.
	* testsuite/20_util/is_callable/requirements/
	explicit_instantiation_ext.cc: New test.
	* testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
	* testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
	test.
	* testsuite/20_util/is_callable/value.cc: New test.
	* testsuite/20_util/is_callable/value_ext.cc: New test.
	* testsuite/20_util/is_nothrow_callable/requirements/
	explicit_instantiation.cc: New test.
	* testsuite/20_util/is_nothrow_callable/requirements/
	explicit_instantiation_ext.cc: New test.
	* testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
	New test.
	* testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
	New test.
	* testsuite/20_util/is_nothrow_callable/value.cc: New test.
	* testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.

From-SVN: r239145
2016-08-04 19:02:56 +01:00
Jonathan Wakely 9a8e528cf1 Define std::enable_shared_from_this::weak_from_this
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
	effective target not dg-options. Move check for feature-test macro to:
	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	New test.

From-SVN: r239121
2016-08-04 13:33:10 +01:00
Jonathan Wakely 7d2035fafe Simplify std::__invoke_impl definitions
* include/std/functional (_Unwrap): Rename to __inv_unwrap.
	(__invfwd): Adjust.
	(__invoke_impl): Remove unused template parameters.
	* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
	parameter.
	* testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
	and test __invoke extension for C++11.

From-SVN: r239120
2016-08-04 12:09:29 +01:00
Jonathan Wakely c7fdbdcdbd Define feature-test macro for std::enable_shared_from_this
* include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
	Define feature-test macro.
	* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
	for the macro.

From-SVN: r239094
2016-08-03 20:10:06 +01:00
Jonathan Wakely f21f4463ad Define std::shared_ptr::weak_type
* include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
	* include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.

From-SVN: r239093
2016-08-03 20:09:57 +01:00
Jonathan Wakely 32eaac9c91 Define std::as_const
* include/std/utility (as_const): Define.
	* testsuite/20_util/as_const/1.cc: New test.
	* testsuite/20_util/as_const/rvalue_neg.cc: New test.

From-SVN: r239090
2016-08-03 19:11:23 +01:00
Jonathan Wakely b7dabce5f3 Define std::owner_less<void> specialization (P0074R0)
* include/bits/shared_ptr.h (owner_less): Add default template
	argument.
	* include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
	specialization.
	(owner_less<void>): Define specialization.
	* include/bits/stl_function.h (__cpp_lib_transparent_operators):
	Update value.
	* testsuite/20_util/owner_less/void.cc: New test.
	* testsuite/experimental/feat-cxx14.cc: Update macro value tested.

From-SVN: r239089
2016-08-03 19:11:18 +01:00
Jonathan Wakely 27631a2542 Remove deprecated has_trivial_xxx traits
* include/std/type_traits (has_trivial_default_constructor): Remove.
	(has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
	* testsuite/20_util/has_trivial_copy_assign/requirements/
	explicit_instantiation.cc: Remove test.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/value.cc:
	Likewise.
	* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
	Check has_trivial_default_constructor, has_trivial_copy_constructor,
	and has_trivial_copy_assign are not defined.
	* testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
	tests.
	* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line number.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r239079
2016-08-03 16:18:30 +01:00
Jonathan Wakely a4e1011c49 Move dg-error directives to relevant lines
* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
	dg-error to relevant line.
	* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
	Likewise.
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.

From-SVN: r238994
2016-08-02 20:34:25 +01:00
Jonathan Wakely a02a61eeaa Limit std::tuple tests to run for C++11 and later
* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
	later.
	* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
	Likewise.

From-SVN: r238945
2016-08-01 13:18:18 +01:00
Jonathan Wakely 6f3b889189 Remove unused headers and variables from libstdc++ tests
* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
	unused header and variable from compile-only test.
	* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
	Likewise.

From-SVN: r238943
2016-08-01 13:18:08 +01:00
Jonathan Wakely 4d16871b22 Use -std=gnu++98 instead of -std=gnu++03 in test
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	808590.cc: Use -std=gnu++98 instead of -std=gnu++03.

From-SVN: r238941
2016-08-01 13:17:54 +01:00
Jonathan Wakely e350983522 Remove linker options from compile-only tests
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
	linker options from compile-only tests.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
	Likewise.

From-SVN: r238940
2016-08-01 13:17:49 +01:00
Jonathan Wakely c4da1da21e Change std::conditional test to compile-only
* testsuite/20_util/conditional/requirements/typedefs.cc: Change to
	compile-only test.

From-SVN: r238930
2016-07-31 20:37:14 +01:00
Jonathan Wakely 77f3d97909 Allow std::pair test to run in C++11 mode too
* testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
	c++11 instead of setting -std=gnu++14.

From-SVN: r238925
2016-07-31 19:12:28 +01:00
Jonathan Wakely 3c040fa4a2 libstdc++/72745 add static assertion for invalid tuple access
PR libstdc++/72745
	* include/std/array (get): Use positive message for static assertions.
	* include/std/functional (_Safe_tuple_element_t): Fix indentation.
	* include/std/tuple (tuple_element<I, tuple<>>): Add partial
	specialization for invalid indices, with static assertion.
	* testsuite/20_util/tuple/element_access/get_neg.cc: New test.

From-SVN: r238924
2016-07-31 18:08:52 +01:00
Jonathan Wakely f245e3a0ee Move dg-error directives to relevant lines
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
	dg-error to relevant line.
	* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
	Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	assign_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
	Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/
	requirements/non_uint_neg.cc: Likewise.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
	Likewise. Also test for std::atomic_address.

From-SVN: r238923
2016-07-31 17:51:08 +01:00
Ville Voutilainen 8c9142276b Add missing variable traits, fix testsuite failures.
* include/bits/uses_allocator.h (uses_allocator_v): New.
	* include/std/functional (is_bind_expression_v, is_placeholder_v):
	Likewise.
	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/duration/literals/range.cc: Likewise.
	* 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/ratio/operations/ops_overflow_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
	New.

From-SVN: r238921
2016-07-31 17:52:53 +03:00
Jonathan Wakely 2f2971492b Check __STRICT_ANSI__ for 128-bit arithmetic types
* testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
	not test 128-bit types.
	* testsuite/20_util/is_floating_point/value.cc: Likewise.
	* testsuite/20_util/is_integral/value.cc: Likewise.
	* testsuite/20_util/is_signed/value.cc: Likewise.
	* testsuite/20_util/is_unsigned/value.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
	Likewise.

From-SVN: r238918
2016-07-31 14:06:38 +01:00
Ville Voutilainen 137422c80c Implement C++17 variable templates for type traits.
* include/std/chrono (treat_as_floating_point_v): New.
	* include/std/ratio (ratio_equal_v, ratio_not_equal_v)
	(ratio_less_v, ratio_less_equal_v, ratio_greater_v)
	(ratio_greater_equal_v): Likewise.
	* include/std/system_error (is_error_code_enum_v)
	(is_error_condition_enum_v): Likewise.
	* include/std/tuple (tuple_size_v): Likewise.
	* type_traits (conjunction_v, disjunction_v, negation_v)
	(is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
	(is_array_v, is_pointer_v, is_lvalue_reference_v)
	(is_rvalue_reference_v, is_member_object_pointer_v)
	(is_member_function_pointer_v, is_enum_v, is_union_v)
	(is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
	(is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
	(is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
	(is_trivially_copyable_v, is_standard_layout_v)
	(is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
	(is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
	(is_constructible_v, is_default_constructible_v)
	(is_copy_constructible_v, is_move_constructible_v)
	(is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
	(is_destructible_v, is_trivially_constructible_v)
	(is_trivially_default_constructible_v)
 	(is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
	(is_trivially_assignable_v, is_trivially_copy_assignable_v)
	(is_trivially_move_assignable_v, is_trivially_destructible_v)
	(is_nothrow_constructible_v, is_nothrow_default_constructible_v)
	(is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
	(is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
	(is_nothrow_move_assignable_v, is_nothrow_destructible_v)
	(has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
	(is_same_v, is_base_of_v, is_convertible_v): Likewise.
	* testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
	* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
	Likewise.
	* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
	* testsuite/20_util/variable_templates_for_traits.cc: Likewise.

From-SVN: r238892
2016-07-29 22:01:39 +03:00
Jonathan Wakely 427f68c6c2 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
From-SVN: r238793
2016-07-27 18:32:45 +01:00
Jonathan Wakely 19bb30c065 Use std::mt19937, std::thread and std::atomic to simplify tests
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
	std::mt19937, std::thread and std::atomic to simplify test.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.

From-SVN: r238703
2016-07-25 11:31:53 +01:00
Jonathan Wakely 22620c1452 Remove memory leaks in libstdc++ testsuite
* testsuite/18_support/new_delete_placement.cc: Don't allocate (and
	leak) memory for arguments to placement delete.
	* testsuite/20_util/addressof/1.cc: Don't leak memory.
	* testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
	Likewise.

From-SVN: r238607
2016-07-21 20:38:32 +01:00
Ville Voutilainen 1ec0f76305 Fix the constraints for any's assignment operator template to properly
reject assignment from a non-copyable lvalue.

From-SVN: r238365
2016-07-15 10:44:22 +03:00
Ville Voutilainen 25a69162c9 Implement P0032R3, Homogeneous interface for variant, any and optional,
for the parts concerning any and optional.
	* include/std/any (_Storage()): Make constexpr and have it
	initialize _M_ptr.
	(any()): Make constexpr.
	(any(const any&)): Adjust.
	(any(any&&)): Likewise.
	(__any_constructible_t): New.
	(any(_ValueType&&)): Constrain.
	(any(in_place_type_t<_Tp>, _Args&&...)): New.
	(any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
	Likewise.
	(~any()): Adjust.
	(operator=(const any&)): Likewise.
	(operator=(any&&)): Likewise.
	(operator=(_ValueType&&)): Constrain.
	(emplace(_Args&&...)): New.
	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
	(clear()): Remove.
	(reset()): New.
	(swap(any&)): Adjust.
	(empty()): Remove.
	(has_value()): New.
	(type()): Adjust.
	(_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
	(_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
	(make_any(_Args&&...)): Likewise.
	(make_any(initializer_list<_Up>, _Args&&...)): Likewise.
	* include/std/optional (in_place_t, in_place): Remove.
	(bad_optional_access): Add a comment referring to LEWG 72.
	(emplace(_Args&&...)): Constrain.
	(has_value()): New.
	(reset()): Likewise.
	(make_optional(_Args&&...)): Likewise.
	(make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
	* include/std/utility (in_place_tag): New.
	(__in_place, __in_place_type, __in_place_index): Likewise.
	(in_place_t, in_place_type_t, in_place_index_t): Likewise.
	(in_place(__in_place*)): Likewise.
	(in_place(__in_place_type<_Tp>*)): Likewise.
	(in_place(__in_place_index<_Idx>*)): Likewise.
	* testsuite/20_util/any/assign/1.cc: Adjust.
	* testsuite/20_util/any/assign/emplace.cc: New.
	* testsuite/20_util/any/assign/self.cc: Adjust.
	* testsuite/20_util/any/cons/1.cc: Likewise.
	* testsuite/20_util/any/cons/in_place.cc: New.
	* testsuite/20_util/any/make_any.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
	* testsuite/20_util/any/misc/swap.cc: Likewise.
	* testsuite/20_util/any/modifiers/1.cc: Likewise.
	* testsuite/20_util/any/requirements.cc: New.
	* testsuite/20_util/in_place/requirements.cc: Likewise.
	* testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
	* testsuite/20_util/optional/in_place.cc: Likewise.
	* testsuite/20_util/optional/make_optional.cc: Add tests for
	the new overloads of make_optional.

From-SVN: r238329
2016-07-14 12:10:05 +03:00
Ville Voutilainen 86c0ec1de1 Implement P0307R2, Making Optional Greater Equal Again.
* include/experimental/optional (_Has_addressof): Fix the comment.
	* include/std/optional (_Has_addressof): Likewise.
	(operator=(_Up&&)): Constrain.
	(operator=(const optional<_Up>&)): Likewise.
	(operator=(optional<_Up>&&)): Likewise.
	(__optional_relop_t): New.
	(operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
	(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
	Constrain and make transparent.
	(operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
	(operator>(const optional<_Tp>&, const optional<_Tp>&)):
	Constrain and make transparent.
	(operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
	(operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
	(operator==(const optional<_Tp>&, const _Tp&): Constrain.
	(operator==(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator!=(const optional<_Tp>&, _Tp const&)):
	Constrain and make transparent.
	(operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator<(const optional<_Tp>&, const _Tp&)): Constrain.
	(operator<(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator>(const optional<_Tp>&, const _Tp&)):
	Constrain and make transparent.
	(operator>(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
	(operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
	(operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
	* testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/20_util/optional/relops/1.cc: Likewise.
	* testsuite/20_util/optional/relops/2.cc: Likewise.
	* testsuite/20_util/optional/relops/3.cc: Likewise.
	* testsuite/20_util/optional/relops/4.cc: Likewise.
	* testsuite/20_util/optional/requirements.cc: Add tests to verify
	that optional's relops are transparent and don't synthesize
	operators. Also test that assignment sfinaes.

From-SVN: r238292
2016-07-13 14:25:51 +03:00
Jonathan Wakely 1b24fb4cd1 Add tests and docs for LWG 2212 support
* testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Only include <array>.
	* testsuite/23_containers/array/tuple_interface/tuple_size.cc:
	Likewise.
	* doc/xml/manual/intro.xml; Document LWG 2212 support.
	* doc/html*: Regenerate.

From-SVN: r238244
2016-07-12 15:00:26 +01:00
Ville Voutilainen 435e56fb52 Implement std::optional.
* include/Makefile.am: Add optional to exported headers.
	* include/Makefile.in: Likewise.
	* include/std/optional: New.
	* testsuite/20_util/optional/typedefs.cc: Likewise.
	* testsuite/20_util/optional/relops/2.cc: Likewise.
	* testsuite/20_util/optional/relops/3.cc: Likewise.
	* testsuite/20_util/optional/relops/4.cc: Likewise.
	* testsuite/20_util/optional/relops/5.cc: Likewise.
	* testsuite/20_util/optional/relops/1.cc: Likewise.
	* testsuite/20_util/optional/relops/6.cc: Likewise.
	* testsuite/20_util/optional/nullopt.cc: Likewise.
	* testsuite/20_util/optional/in_place.cc: Likewise.
	* testsuite/20_util/optional/make_optional.cc: Likewise.
	* testsuite/20_util/optional/assignment/2.cc: Likewise.
	* testsuite/20_util/optional/assignment/3.cc: Likewise.
	* testsuite/20_util/optional/assignment/4.cc: Likewise.
	* testsuite/20_util/optional/assignment/5.cc: Likewise.
	* testsuite/20_util/optional/assignment/1.cc: Likewise.
	* testsuite/20_util/optional/assignment/6.cc: Likewise.
	* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
	* testsuite/20_util/optional/cons/default.cc: Likewise.
	* testsuite/20_util/optional/cons/move.cc: Likewise.
	* testsuite/20_util/optional/cons/value.cc: Likewise.
	* testsuite/20_util/optional/cons/copy.cc: Likewise.
	* testsuite/20_util/optional/requirements.cc: Likewise.
	* testsuite/20_util/optional/observers/2.cc: Likewise.
	* testsuite/20_util/optional/observers/3.cc: Likewise.
	* testsuite/20_util/optional/observers/4.cc: Likewise.
	* testsuite/20_util/optional/observers/5.cc: Likewise.
	* testsuite/20_util/optional/observers/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
	* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
	* testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
	* testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
	* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
	* testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
	* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
	* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
	* testsuite/20_util/optional/swap/1.cc: Likewise.

From-SVN: r238197
2016-07-10 20:44:21 +03:00
Ville Voutilainen 52e8622199 Implement std::any.
* include/Makefile.am: Add any and c++17_warning.h to exported headers.
	* include/Makefile.in: Likewise.
	* include/std/any: New.
	* testsuite/20_util/any/assign/1.cc: Likewise.
	* testsuite/20_util/any/assign/2.cc: Likewise.
	* testsuite/20_util/any/assign/self.cc: Likewise.
	* testsuite/20_util/any/cons/1.cc: Likewise.
	* testsuite/20_util/any/cons/2.cc: Likewise.
	* testsuite/20_util/any/cons/aligned.cc: Likewise.
	* testsuite/20_util/any/cons/nontrivial.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
	* testsuite/20_util/any/misc/swap.cc: Likewise.
	* testsuite/20_util/any/modifiers/1.cc: Likewise.
	* testsuite/20_util/any/observers/type.cc: Likewise.
	* testsuite/20_util/any/typedefs.cc: Likewise.

From-SVN: r238061
2016-07-07 01:33:20 +03:00
Daniel Kruegler 6b9539e2aa Provide swappable traits (p0185r1)
2016-06-16  Daniel Kruegler  <daniel.kruegler@gmail.com>

	Provide swappable traits (p0185r1)
	* include/std/type_traits (is_swappable, is_nothrow_swappable,
	is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
	is_nothrow_swappable_v, is_swappable_with_v,
	is_nothrow_swappable_with_v): New.
	* include/bits/stl_pair.h: Use it as per p0185r1.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/unique_ptr.h: Likewise.
	* include/std/tuple: Likewise.
	* include/std/array: Likewise. Fix zero-size member swap.
	* include/bits/hashtable.h: Use __and_.
	* testsuite/20_util/is_nothrow_swappable/requirements/
	explicit_instantiation.cc: Change test options to std=gnu++17.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
	* testsuite/20_util/is_swappable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_swappable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_swappable/requirements/
	explicit_instantiation_ext.cc: New.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
	New.
	* testsuite/20_util/is_nothrow_swappable/value.h: New.
	* testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
	* testsuite/20_util/is_nothrow_swappable_with/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
	New.
	* testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
	* testsuite/20_util/is_swappable/requirements/
	explicit_instantiation_ext.cc: New.
	* testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
	* testsuite/20_util/is_swappable/value.h: New.
	* testsuite/20_util/is_swappable/value_ext.cc: New.
	* testsuite/20_util/is_swappable_with/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
	* testsuite/20_util/is_swappable_with/value.cc: New.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Likewise.

From-SVN: r237531
2016-06-16 16:07:19 +01:00
Ville Voutilainen dbc6221fe5 Support allocators in tuples of zero size.
* include/std/tuple (tuple<>::tuple(),
	tuple<>::tuple(allocator_arg_t, const _Alloc&),
	tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
	* testsuite/20_util/tuple/cons/allocators.cc: Adjust.

From-SVN: r237143
2016-06-06 19:28:59 +03:00
Ville Voutilainen 7a66745357 Protect allocator-overloads of tuple-from-tuple constructors from cases that would create dangling references.
Protect allocator-overloads of tuple-from-tuple constructors
	from cases that would create dangling references.
	* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
 	const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
 	tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.

From-SVN: r237106
2016-06-05 20:39:10 +03:00
Ville Voutilainen b702100693 re PR libstdc++/66338 (std::forward_as_tuple() issue with single argument)
2016-05-24  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/66338
	* include/std/tuple (_TMC): Add a check for _NotSameTuple.
	* include/std/tuple (tuple(_UElements&&...)): Remove the separate
	check for _NotSameTuple.
	* include/std/tuple (_TMCT): New.
	* include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
	* include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
	* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
	      const tuple<_UElements...>&)): Likewise.
	* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
	      tuple<_UElements...>&&)): Likewise.
	* testsuite/20_util/tuple/cons/66338.cc: New.

From-SVN: r236822
2016-05-27 17:08:37 +03:00
Ville Voutilainen fb334765e2 Avoid endless run-time recursion for copying single-element tuples where the...
Avoid endless run-time recursion for copying single-element
	tuples where the element type is by-value constructible
	from any type.
 	* include/std/tuple (_NotSameTuple): New.
 	* include/std/tuple (tuple(_UElements&&...): Use it.
	* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.

From-SVN: r236025
2016-05-09 14:03:36 +03:00
Jonathan Wakely 4ed6e52446 Make use of extensions more explicit in libstdc++ tests
* testsuite/18_support/bad_exception/23591_thread-1.c: Add
	-Wno-pedantic to dg-options.
	* testsuite/20_util/align/2.cc: Use type as operand of alignof.
	* testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
	to dg-options.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
	Remove extra semi-colon.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Always supply second argument to static_assert.
	* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
	semi-colon.
	* testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
	dg-options.
	* testsuite/26_numerics/complex/literals/values.cc: Likewise.
	* testsuite/29_atomics/atomic/60695.cc: Likewise.
	* testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
	alignof when operand is an object not a type.
	* testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
	* testsuite/decimal/make-decimal.cc: Likewise.
	* testsuite/experimental/type_traits/value.cc: Always supply second
	argument to static_assert.
	* testsuite/util/testsuite_common_types.h: Use __extension__ for
	__int128 types.

From-SVN: r235154
2016-04-18 16:44:25 +01:00
Jason Merrill 9f285ccb77 Revert empty class parameter passing ABI changes.
From-SVN: r234977
2016-04-14 12:23:06 -04:00
Jonathan Wakely a6297ab587 Adjust for new empty class parameter passing ABI.
* include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
	_GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
	* include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
	of functions taking empty structs by value. Add a template parameter
	to overloads without hints. Rename overloads with hints to
	_M_emplace_hint.
	(_Hashtable::_M_erase(true_type, const_iterator),
	_Hashtable::_M_erase(false_type, const_iterator)): Change signatures
	by reordering parameters.
	* include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
	_M_emplace_hint instead of _M_emplace.
	* include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
	shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
	* include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
	__shared_ptr): Likewise.
	* include/bits/stl_algo.h (replace_if): Likewise.
	* include/bits/stl_pair.h (piecewise_construct_t,
	piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
	* include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
	__uses_alloc0): Likewise.
	* include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
	* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.

From-SVN: r234964
2016-04-13 23:00:50 +01:00
Ville Voutilainen 7b3318c41e re PR libstdc++/70437 (Instantiation loop with pair and is_constructible)
PR libstdc++/70437
 	* include/bits/stl_pair.h (_ConstructiblePair,
	_ImplicitlyConvertiblePair, _MoveConstructiblePair,
	_ImplicitlyMoveConvertiblePair): Add shortcut conditions
	for same-type cases.
	* testsuite/20_util/pair/70437.cc: New.

From-SVN: r234743
2016-04-05 14:31:30 +03:00
Jonathan Wakely 2944621e2c Avoid including all of <random> in <algorithm>
PR libstdc++/69464
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/random.h (uniform_int_distribution): Move to
	bits/uniform_int_dist.h.
	* include/bits/random.tcc (uniform_int_distribution::operator(),
	uniform_int_distribution::__generate_impl): Likewise.
	* include/bits/uniform_int_dist.h: New header.
	* include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
	<bits/uniform_int_dist.h> instead of <random>.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	move_iterators/1.cc: Include correct header for uninitialized_copy.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	move_iterators/1.cc: Likewise.
	* testsuite/25_algorithms/nth_element/58800.cc: Include correct
	header for vector.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.

From-SVN: r232798
2016-01-25 16:44:30 +00:00
Jonathan Wakely 9c5ad80efd Fix construction of std::function from null pointer-to-member
PR libstdc++/69293
	* include/std/functional (_Function_base::_M_not_empty_function):
	Change overloads for pointers to take arguments by value.
	* testsuite/20_util/function/cons/57465.cc: Add tests for
	pointer-to-member cases.

From-SVN: r232504
2016-01-18 11:43:37 +00:00
Jonathan Wakely d7c1581c04 Use static assertion for uses-allocator construction
PR libstdc++/69293
	* include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
	static assertion that type is constructible from the arguments.
	* testsuite/20_util/scoped_allocator/69293_neg.cc: New.
	* testsuite/20_util/uses_allocator/69293_neg.cc: New.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.

From-SVN: r232457
2016-01-15 23:12:13 +00:00
Daniel Kruegler 26b5ace7ea libstdc++/68877 Reimplement std::__is_swappable
2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>

	PR libstdc++/68877
	* include/std/type_traits: Following N4511, reimplement __is_swappable
	and __is_nothrow_swappable. Move __is_swappable to namespace std,
	adjust callers. Use __is_nothrow_swappable in swap.
	* include/bits/move.h: Use __is_nothrow_swappable in swap.
	* testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
	__is_swappable related tests.
	* testsuite/20_util/is_swappable/value.cc: New.
	* testsuite/20_util/is_swappable/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
	* testsuite/25_algorithms/swap/68877.cc: New.

From-SVN: r232296
2016-01-12 21:19:58 +00:00
Jonathan Wakely bd285a8bdb Extend std::function test for PR 68995
* testsuite/20_util/function/68995.cc: Test reference_wrapper cases.

From-SVN: r232294
2016-01-12 19:39:47 +00:00
Jonathan Wakely 1c3c7c4145 Prevent recursive instantiation in std::function
PR libstdc++/69005
	PR libstdc++/69222
	* include/std/functional (function::_Invoke): Remove, use result_of.
	(function::_Callable): Replace alias template with class template
	and use partial specialization instead of _NotSelf alias template.
	(function(_Functor)): Add "not self" constraint so that _Callable is
	not used while type is incomplete.
	* testsuite/20_util/function/69222.cc: New.

From-SVN: r232273
2016-01-12 14:54:33 +00:00
Jonathan Wakely 1517bc3008 allocator_traits<allocator<T>> partial specialization
PR libstdc++/60976
	* include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
	Define partial specialization.
	* testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
	destroy members to std::allocator explicit specialization.

From-SVN: r232232
2016-01-11 16:47:58 +00:00
Jonathan Wakely f885fa898f Use std::addressof in insert iterators, allocators and promises
PR libstdc++/69105
	PR libstdc++/69106
	PR libstdc++/69114
	* include/bits/stl_iterator.h (back_insert_iterator,
	front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
	* include/bits/uses_allocator.h (__use_alloc): Use __addressof.
	* include/std/future (__future::base::_State_baseV2::__setter):
	Likewise.
	* include/std/scoped_allocator (__outermost): Likewise.
	* testsuite/20_util/scoped_allocator/69114.cc: New.
	* testsuite/20_util/uses_allocator/69114.cc: New.
	* testsuite/30_threads/promise/69106.cc: New.

From-SVN: r232129
2016-01-07 15:01:33 +00:00
Jakub Jelinek 818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jonathan Wakely 989d4a8609 Rename test file that had incorrect bug number
PR libstdc++/68982
	testsuite/20_util/function_objects/mem_fn/68276.cc: Rename to ...
	testsuite/20_util/function_objects/mem_fn/68982.cc: Correct bug number.

From-SVN: r231881
2015-12-21 14:16:36 +00:00
Jonathan Wakely a716d11ad4 libstdc++/68995 qualify calls to __callable_functor
PR libstdc++/68995
	* include/std/functional (_function_handler, function): Qualify
	__callable_functor.
	* testsuite/20_util/function/68995.cc: New.

From-SVN: r231880
2015-12-21 13:02:18 +00:00
Jonathan Wakely e9e6a99538 libstdc++/68276 consistently qualify std::forward
PR libstdc++/68276
	* include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify
	std::forward.
	testsuite/20_util/function_objects/mem_fn/68276.cc: New.

From-SVN: r231879
2015-12-21 13:02:12 +00:00
Ville Voutilainen de0830e12b re PR libstdc++/66693 ([C++17] std::tuple_size fails with const std::array)
PR libstdc++/66693.

	* include/std/tuple (tuple_element, tuple_size, tuple_element_t,
	__tuple_element_t): Move to...
	* include/std/utility: ...here.
	* testsuite/20_util/pair/astuple/astuple.cc: Adjust.
	* testsuite/20_util/pair/astuple/astuple_cpp14.cc: New.
	* testsuite/20_util/tuple/tuple_element.cc: Adjust.
	* testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
	Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc:
	New.
	* testsuite/23_containers/array/tuple_interface/tuple_size.cc: Adjust.

From-SVN: r231875
2015-12-21 13:22:16 +02:00
Jonathan Wakely 6666731254 Fix cv-qualifiers in std::bind invocation
PR libstdc++/68912
	* include/std/functional (_Bind::operator()): Use lvalue functor to
	deduce return type.
	* testsuite/20_util/bind/68912.cc: New.

From-SVN: r231652
2015-12-15 14:17:17 +00:00
Jonathan Wakely f3d7dd52a6 Fix std::invoke support for reference_wrappers
PR libstdc++/59768
	* include/std/functional (_Unwrap, __invfwd): Define.
	(__invoke_impl): Remove reference_wrapper overloads and use __invfwd.
	* include/std/type_traits (__result_of_memobj, __result_of_memfun):
	Add partial specializations for const reference_wrappers and simplify.
	* testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors.
	* testsuite/20_util/function_objects/invoke/59768.cc: New.

From-SVN: r231574
2015-12-11 21:45:51 +00:00
Jonathan Wakely 28eca950b7 Fix ambiguity with multiple enable_shared_from_this bases
PR libstdc++/56383
	* testsuite/20_util/enable_shared_from_this/56383.cc: New.
	* include/bits/shared_ptr_base.h (__enable_shared_from_this): Make
	friend declaration match previous declaration of
	__enable_shared_from_this_helper.
	* include/bits/shared_ptr.h (enable_shared_from_this): Likewise.

From-SVN: r231181
2015-12-02 15:08:18 +00:00
Ville Voutilainen c3a6648b1c Implement D0013R2, logical type traits.
2015-11-12  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement D0013R2, logical type traits.

	/libstdc++-v3
	* include/experimental/type_traits (conjunction_v, disjunction_v,
	negation_v): New.
	* include/std/type_traits (conjunction, disjunction, negation):
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/experimental/type_traits/value.cc: Likewise.
	* testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: New.
	* testsuite/20_util/logical_traits/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/logical_traits/value.cc: Likewise.

	/testsuite
	* g++.dg/cpp0x/Wattributes1.C: Adjust.

From-SVN: r230258
2015-11-12 15:56:31 +02:00
Ville Voutilainen f763219373 Make the default constructors of tuple and pair conditionally explicit.
2015-11-03  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Make the default constructors of tuple and pair conditionally explicit.
	* include/std/type_traits (is_unsigned, __is_array_unknown_bounds,
	__is_default_constructible_atom, __is_default_constructible_safe,
	__is_direct_constructible_new_safe, __is_direct_constructible_ref_cast,
	__is_nt_default_constructible_impl, is_nothrow_default_constructible,
	is_nothrow_constructible, is_nothrow_assignable,
	is_trivially_constructible, is_trivially_copy_constructible,
	is_trivially_move_constructible, is_trivially_assignable,
	is_trivially_copy_assignable, is_trivially_move_assignable,
	is_trivially_destructible): Simplify.
	* include/std/type_traits (
	__do_is_implicitly_default_constructible_impl,
	__is_implicitly_default_constructible_impl,
	__is_implicitly_default_constructible_safe,
	__is_implicitly_default_constructible): New.
	* include/bits/stl_pair.h (pair::pair()): Use it.
	* include/std/tuple (tuple<_T1, _T2>::tuple): Use it.
	* include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New.
	* include/std/tuple (tuple<_Types...>::tuple()): Use it.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc: New.
	* testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
	* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.

From-SVN: r229699
2015-11-03 10:41:40 +02:00
Jonathan Wakely 93e954005f Implement C++17 std::invoke and LWG DR 2219
* include/std/functional (__invoke_impl): New overloads.
	(__invoke): Replace with a single function calling __invoke_impl.
	(invoke): Add C++17 std::invoke.
	(reference_wrapper::operator()): Qualify call to __invoke.
	(_Mem_fn_traits_base, _Mem_fn_traits): Remove unused typedefs.
	(_Mem_fn_base): Remove unused typedefs and implement call operator in
	terms of __invoke.
	* include/std/future (__future_base::_Async_state_commonV2): Do not
	pass reference_wrapper as object argument to call_once.
	* include/std/type_traits (result_of): Define nested __invoke_type.
	Handle reference_wrapper as per LWG 2219.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error directives.
	* testsuite/20_util/function_objects/mem_fn/55463.cc: Remove tests
	using member functions of reference_wrapper.

From-SVN: r229290
2015-10-25 01:00:54 +01:00
Ville Voutilainen 057ce49719 re PR c++/67844 (Cannot make tuple of class with template constructor)
2015-10-05  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR 67844.
	* include/std/tuple (_TC::_NonNestedTuple): Eagerly reject
	conversions from tuple types same as the target tuple.
	* testsuite/20_util/tuple/67844.cc: New.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Add
	a missing copyright header.

From-SVN: r228468
2015-10-05 12:57:20 +03:00
Ville Voutilainen 5e2f2cd584 Avoid creating dangling references in case of nested tuples
for tuple constructors that construct from other tuples.

2015-09-25  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Avoid creating dangling references in case of nested tuples
	for tuple constructors that construct from other tuples.
	* include/std/tuple (_TC::_NonNestedTuple): New.
	* include/std/tuple (tuple::_TNTC): New.
	* include/std/tuple (tuple(const tuple<_UElements...>&),
	tuple(tuple<_UElements...>&&): Use _TNTC.
	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: New.

From-SVN: r228134
2015-09-25 19:41:45 +03:00
Jonathan Wakely 93023f35f7 Relax Debug Mode assertions on operator-> for smart pointers.
* include/bits/shared_ptr_base.h (__shared_ptr::operator->): Change
	_GLIBCXX_DEBUG_ASSERT to _GLIBCXX_DEBUG_PEDASSERT.
	* include/bits/unique_ptr.h (unique_ptr::operator->): Likewise.
	* testsuite/20_util/shared_ptr/observers/get.cc: Test operator-> on
	empty shared_ptr.

From-SVN: r227524
2015-09-07 18:17:23 +01:00
Sebastian Huber 37d13ae648 libstdc++: Run tests on RTEMS
libstdc++-v3/ChangeLog

	* testsuite/18_support/pthread_guard.cc: Add *-*-rtems* target
	selector to all lines which contain a *-*-cygwin target selector.
	* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
	* testsuite/21_strings/basic_string/pthread33394.cc: Likewise.
	* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
	* testsuite/23_containers/list/pthread1.cc: Likewise.
	* testsuite/23_containers/list/pthread5.cc: Likewise.
	* testsuite/23_containers/map/pthread6.cc: Likewise.
	* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
	* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
	* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
	* testsuite/30_threads/async/42819.cc: Likewise.
	* testsuite/30_threads/async/49668.cc: Likewise.
	* testsuite/30_threads/async/54297.cc: Likewise.
	* testsuite/30_threads/async/any.cc: Likewise.
	* testsuite/30_threads/async/async.cc: Likewise.
	* testsuite/30_threads/async/launch.cc: Likewise.
	* testsuite/30_threads/async/lwg2021.cc: Likewise.
	* testsuite/30_threads/async/sync.cc: Likewise.
	* testsuite/30_threads/call_once/39909.cc: Likewise.
	* testsuite/30_threads/call_once/49668.cc: Likewise.
	* testsuite/30_threads/call_once/60497.cc: Likewise.
	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/3.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
	* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
	* testsuite/30_threads/future/cons/move.cc: Likewise.
	* testsuite/30_threads/future/members/45133.cc: Likewise.
	* testsuite/30_threads/future/members/get.cc: Likewise.
	* testsuite/30_threads/future/members/get2.cc: Likewise.
	* testsuite/30_threads/future/members/share.cc: Likewise.
	* testsuite/30_threads/future/members/valid.cc: Likewise.
	* testsuite/30_threads/future/members/wait.cc: Likewise.
	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/lock/1.cc: Likewise.
	* testsuite/30_threads/lock/2.cc: Likewise.
	* testsuite/30_threads/lock/3.cc: Likewise.
	* testsuite/30_threads/lock/4.cc: Likewise.
	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
	* testsuite/30_threads/packaged_task/60564.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
	Likewise.
	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
	* testsuite/30_threads/promise/60966.cc: Likewise.
	* testsuite/30_threads/promise/cons/1.cc: Likewise.
	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
	* testsuite/30_threads/promise/cons/move.cc: Likewise.
	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
	* testsuite/30_threads/promise/members/swap.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
	Likewise.
	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
	Likewise.
	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/this_thread/1.cc: Likewise.
	* testsuite/30_threads/this_thread/2.cc: Likewise.
	* testsuite/30_threads/this_thread/3.cc: Likewise.
	* testsuite/30_threads/this_thread/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/1.cc: Likewise.
	* testsuite/30_threads/thread/cons/2.cc: Likewise.
	* testsuite/30_threads/thread/cons/3.cc: Likewise.
	* testsuite/30_threads/thread/cons/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
	* testsuite/30_threads/thread/cons/5.cc: Likewise.
	* testsuite/30_threads/thread/cons/6.cc: Likewise.
	* testsuite/30_threads/thread/cons/7.cc: Likewise.
	* testsuite/30_threads/thread/cons/8.cc: Likewise.
	* testsuite/30_threads/thread/cons/9.cc: Likewise.
	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
	* testsuite/30_threads/thread/members/1.cc: Likewise.
	* testsuite/30_threads/thread/members/2.cc: Likewise.
	* testsuite/30_threads/thread/members/3.cc: Likewise.
	* testsuite/30_threads/thread/members/4.cc: Likewise.
	* testsuite/30_threads/thread/members/5.cc: Likewise.
	* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
	* testsuite/30_threads/thread/swap/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
	* testsuite/30_threads/try_lock/1.cc: Likewise.
	* testsuite/30_threads/try_lock/2.cc: Likewise.
	* testsuite/30_threads/try_lock/3.cc: Likewise.
	* testsuite/30_threads/try_lock/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
	* testsuite/ext/rope/pthread7-rope.cc: Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
	Likewise.
	* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
	Likewise.

From-SVN: r227429
2015-09-03 05:45:33 +00:00
Jonathan Wakely 6bc41b268e Only set std::enable_shared_from_this member once.
* include/bits/shared_ptr.h (__enable_shared_from_this_helper): Use
	nullptr.
	* include/bits/shared_ptr_base.h (weak_ptr::_M_assign): Don't assign
	if ownership is already shared with a shared_ptr object.
	(__enable_shared_from_this_helper): Use nullptr.
	* testsuite/20_util/enable_shared_from_this/members/const.cc: New.
	* testsuite/20_util/enable_shared_from_this/members/reinit.cc: New.
	* testsuite/20_util/enable_shared_from_this/requirements/
	explicit_instantiation.cc: Instantiate with const and incomplete types.

From-SVN: r227232
2015-08-26 22:27:00 +01:00
Ville Voutilainen f334456903 Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228...
2015-08-08  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
	and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
	templated assignment
	* include/bits/unique_ptr.h
	(__remove_cv, __is_derived_Tp): Remove.
	(default_delete::default_delete(const default_delete<_Up[]>)):
	Constrain with array convertibility.
	(default_delete::operator(_Up*)): Turn into a template,
	constrain with array convertibility.
	(__safe_conversion_up): New, single object version.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
	convertibility.
	(unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint.
	(__safe_conversion_up): Array version, renamed from __safe_conversion,
	updated to implement N4089.
	(__safe_conversion_raw): New.
	(unique_ptr(_Up)): Turn into a template, constrain with array
	convertibility.
	(unique_ptr(_Up,
        typename conditional<is_reference<deleter_type>::value,
        deleter_type, const deleter_type&>::type)): Likewise.
	(unique_ptr(_Up, typename
 	remove_reference<deleter_type>::type&&)): Likewise.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
	(operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint (array version).
	(reset(_Up)): Turn into a template, constrain with array
	convertibility.
	(reset(nullptr_t)): New.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
	* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/dr2228.cc: New.
	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.

From-SVN: r226733
2015-08-08 14:07:34 +03:00
Nikolai Bozhenov e1ed1bca36 constexpr.cc: Remove redundant -save-temps option.
2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>

	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
	redundant -save-temps option.
	* 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.
	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.

From-SVN: r226647
2015-08-05 21:57:03 +01:00
Ville Voutilainen 1fa9ba224e re PR libstdc++/60970 (Support std::hash with enum types (LWG 2148))
2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/60970
	* include/bits/functional_hash.h (__hash_enum): New.
	(hash): Derive from __hash_enum.
	* testsuite/20_util/hash/60970.cc: New.

From-SVN: r226347
2015-07-29 13:41:23 +01:00
Jonathan Wakely 7946683835 alloc_traits.h (__alloctr_rebind): Remove.
* include/bits/alloc_traits.h (__alloctr_rebind): Remove.
	(__allocator_traits_base): New base class.
	(__alloc_rebind): Reimplement in terms of detection idiom.
	(allocator_traits): Derive from __allocator_traits_base. Reimplement
	nested types in terms of detection idiom. Simplify SFINAE constraints
	on overloaded static member functions.
	* include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
	of __alloctr_rebind.
	* testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
	dg-error line number.

From-SVN: r225244
2015-07-01 13:24:09 +01:00
Jonathan Wakely 4f44c5556f ptr_traits.h (__ptrtr_elt_type, [...]): Remove
* include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type,
	__ptrtr_rebind, __ptrtr_not_void): Remove
	(__get_first_arg, __replace_first_arg, __make_not_void): Define new
	transformations.
	(__detected_or_): New detection trait.
	(pointer_traits): Use new traits.
	* testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member.
	* testsuite/20_util/pointer_traits/requirements/
	explicit_instantiation.cc: Use valid arguments to pointer_traits.

From-SVN: r225243
2015-07-01 13:24:03 +01:00
Ville Voutilainen bf7818bfb0 Implement N4387, "Improving pair and tuple", and LWG 2367.
2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4387, "Improving pair and tuple", and LWG 2367.

	* include/bits/stl_pair.h (_ConstructiblePair,
	_ImplicitlyConvertiblePair, _MoveConstructiblePair,
	_ImplicitlyMoveConvertiblePair): New.
	(pair()): Constrain it.
	(pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
	pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
	pair(pair<_U1, _U2>&&)): Make conditionally explicit.
	* include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
	(tuple()): Constrain it.
	(tuple(const _UElements&...), tuple(_UElements&&...),
	tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
	tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
	tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
	tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
	tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
	tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
	tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
	tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
	conditionally explicit.
	* include/experimental/functional (__boyer_moore_array_base): Name
	array type explicitly instead of using an empty braced-init-list.
	* testsuite/20_util/pair/cons/explicit_construct.cc: New.
	* testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
	* testsuite/20_util/pair/requirements/dr2367.cc: New.
	* testsuite/20_util/tuple/cons/explicit_construct.cc: New.
	* testsuite/20_util/tuple/requirements/dr2367.cc: New.

From-SVN: r225189
2015-06-30 14:26:49 +01:00
Jonathan Wakely a2b5fdcbdb Implement N4258 (Cleaning-up noexcept in the Library rev 3)
* doc/xml/manual/intro.xml: Document LWG 2108 status.
	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
	Define.
	* include/bits/allocator.h (allocator::is_always_equal): Likewise.
	* include/bits/forward_list.h
	(forward_list::operator=(forward_list&&)): Use __bool_constant.
	(forward_list::swap(forward_list&)): Add noexcept.
	* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
	Likewise.
	(_Hashtable::swap(_Hashtable&)): Likewise.
	* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
	Use _Alloc_traits::is_always_equal.
	(deque::operator=(deque&&)): Likewise.
	(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
	__bool_constant.
	(swap(deque&, deque&)): Add noexcept.
	* include/bits/stl_list.h (list::operator=(list&&)): Use
	__bool_constant.
	(swap(list&, list&)): Add noexcept.
	* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
	noexcept.
	(swap(map&, map&)): Add noexcept.
	* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
	_Compare in noexcept.
	(swap(multimap&, multimap&)): Add noexcept.
	* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
	_Compare in noexcept.
	(swap(multiset&, multiset&)): Add noexcept.
	* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
	noexcept.
	(swap(set&, set&)): Add noexcept.
	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
	_Compare in noexcept.
	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
	is_always_equal.
	* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
	__bool_constant.
	(swap(vector&, vector&)): Add noexcept.
	* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
	swap(unordered_multimap& unordered_multimap&)): Add noexcept.
	* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
	swap(unordered_multiset& unordered_multiset&)): Add noexcept.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
	Remove.
	(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
	__allocator_always_compares_equal.
	* include/ext/array_allocator.h (array_allocator::is_always_equal):
	Define.
	* include/std/scoped_allocator (__any_of, __propagate_on_copy,
	__propagate_on_move, __propagate_on_swap): Remove.
	(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
	scoped_allocator_adaptor::propagate_on_container_move_assignment,
	scoped_allocator_adaptor::propagate_on_container_swap): Define with
	__and_ instead of __any_of.
	(scoped_allocator_adaptor::is_always_equal): Define.
	* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
	* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
	derive from true_type or false_type.
	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
	is_always_equal member and remove the trait specialization.
	* testsuite/23_containers/vector/52591.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* 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/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.

From-SVN: r225081
2015-06-26 21:10:24 +01:00
Ramana Radhakrishnan 57e6d9be77 Use atomics in guard.cc.
This provides proper definitions for _GLIBCXX_READ_MEM_BARRIER and
_GLIBCXX_WRITE_MEM_BARRIER, rewrites the guards in terms of proper
atomic extensions and removes internal uses of
_GLIBCXX_READ_MEM_BARRIER and _GLIBCXX_WRITE_MEM_BARRIER and replaces
them with equivalent atomics.

2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/66200
	PR c++/66192
	* * config/cpu/generic/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Define
        (_GLIBCXX_WRITE_MEM_BARRIER): Likewise
        * include/bits/shared_ptr_base.h: Use ACQ_REL barrier.
        * include/ext/atomicity.h: Likewise.
        * include/tr1/shared_ptr.h: Likewise.
        * libsupc++/guard.cc (__test_and_acquire): Rewrite with atomics.
        Update comment.
        (__set_and_release): Likewise.
        * testsuite/20_util/shared_ptr/cons/43820_neg.cc (test01): Adjust for
	line numbers.
        * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
        * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
	Likewise.

From-SVN: r224411
2015-06-12 09:49:41 +00:00
Jonathan Wakely 46ba128114 status_cxx2017.xml: Update status tables.
* doc/xml/manual/status_cxx2017.xml: Update status tables.
	* doc/html/manual/*: Regenerate.
	* include/std/type_traits (bool_constant): Define.
	* testsuite/20_util/bool_constant/requirements.cc: New.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r224160
2015-06-05 18:17:53 +01:00
Ville Voutilainen ddb63209a8 Add __is_nothrow_swappable and take it into use.
2015-06-04  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Add __is_nothrow_swappable and take it into use.
	* include/bits/algorithmfwd.h (swap): Only declare for C++98 mode.
	* include/bits/move.h (swap): Add constraints in C++11 and later.
	* include/bits/stl_pair.h (swap): Use __is_nothrow_swappable
	for the free swap function for pair.
	* include/bits/stl_queue.h (swap): Use __is_nothrow_swappable
	for the free swap functions for queue and priority_queue.
	* include/bits/stl_stack.h (swap): Use __is_nothrow_swappable
	for the free swap function for stack.
	* include/debug/array (swap): Use __is_nothrow_swappable
	for the free swap function for array.
	* include/profile/array (swap): Likewise.
	* include/std/array (swap): Likewise.
	* include/std/tuple (_Tuple_impl::_M_swap): Use __is_nothrow_swappable.
	* include/std/type_traits (__is_swappable_impl::__is_swappable,
	__is_nothrow_swappable_impl, __is_nothrow_swappable): New.
	* testsuite/20_util/is_nothrow_swappable/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
	New.
	* testsuite/20_util/is_nothrow_swappable/value.cc: New.

From-SVN: r224153
2015-06-05 15:44:26 +01:00
Jonathan Wakely 793cac74e9 re PR libstdc++/66078 (20_util/specialized_algorithms/uninitialized_copy/808590.cc fails with -std=c++11)
PR libstdc++/66078
	* include/bits/stl_iterator.h (__make_move_if_noexcept_iterator): Add
	overload for pointers.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	808590.cc: Add -std=gnu++03 switch.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	808590-cxx11.cc: Copy of 808590.cc to test with -std=gnu++11.
	* testsuite/23_containers/vector/modifiers/push_back/
	strong_guarantee.cc: New.

From-SVN: r223449
2015-05-20 18:11:03 +01:00
Jonathan Wakely 098aac94ef shared_ptr_base.h (__shared_count(unique_ptr&&)): Check for nullptr (LWG 2415).
* include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): Check
	for nullptr (LWG 2415).
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Test
	construction from empty unique_ptr.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.

From-SVN: r223170
2015-05-13 17:42:18 +01:00
Jonathan Wakely 49d50b6b8f stl_raw_storage_iter.h (raw_storage_iterator::base()): Define (LWG 2454).
* include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()):
	Define (LWG 2454).
	* testsuite/20_util/raw_storage_iterator/base.cc: New.

From-SVN: r223162
2015-05-13 14:54:46 +01:00
Jonathan Wakely 32e6a60e3a alloc_traits.h (_S_max_size): Implement LWG 2466.
* include/bits/alloc_traits.h (_S_max_size): Implement LWG 2466.
	* testsuite/20_util/allocator_traits/members/max_size.cc: Adjust.
	* testsuite/23_containers/forward_list/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/map/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/multimap/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/multiset/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/set/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/minimal.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/allocator/minimal.cc:
	Likewise.
	* testsuite/util/testsuite_allocator.h: Remove unused parameter.

From-SVN: r223154
2015-05-13 13:21:45 +01:00
Jason Merrill 839473d010 synopsis.cc: Add _GLIBCXX14_CONSTEXPR.
* testsuite/20_util/headers/functional/synopsis.cc: Add
	_GLIBCXX14_CONSTEXPR.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Likewise.

From-SVN: r222975
2015-05-09 20:46:12 -04:00
Jason Merrill f8356d52f2 std_c++0x_neg.cc: Add -std=c++98.
* testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/1.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/2.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/3.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/4.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/5.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/6.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/7.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/3946.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/assign_neg.cc: Add -std=c++98.
	* testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc: Likewise.
	* testsuite/20_util/headers/functional/synopsis.cc: Add -Wno-deprecated.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust expected errors.
	* 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/ext/array_allocator/1.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/2.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/26875.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/3.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_allocate_max_size.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_deallocate_null.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_delete.cc: Add -Wno-deprecated.
	* testsuite/ext/array_allocator/check_new.cc: Add -Wno-deprecated.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Prune follow-on error.
	* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Add -std=c++98 -fno-show-column.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc: Add -std=c++98.
	* testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc: Add -std=c++98.
	* testsuite/tr1/6_containers/utility/pair.cc: Add -std=c++98.
	* testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Add -std=c++98.

From-SVN: r222965
2015-05-09 00:50:30 -04:00
Jonathan Wakely cb2ef49e83 re PR libstdc++/65978 (missing constexpr on std::forward_as_tuple and std::tie (LWG issues 2275 and 2301))
PR libstdc++/65978
	* include/std/tuple (forward_as_tuple, tie): Add constexpr.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Uncomment
	and fix tests for forward_as_tuple and tie.

From-SVN: r222719
2015-05-02 12:20:03 +01:00
Jonathan Wakely 6fc456c36b memory (pointer_safety, [...]): Define.
* include/std/memory (pointer_safety, declare_reachable,
	undeclare_reachable, declare_no_pointers, undeclare_no_pointers,
	get_pointer_safety): Define.
	* testsuite/20_util/pointer_safety/1.cc: New.

From-SVN: r222674
2015-05-01 12:02:18 +01:00
Jonathan Wakely 952bc7a64c re PR libstdc++/65760 (invalid use of incomplete type with std::is_convertible<C, C>)
PR libstdc++/65760
	* include/std/functional (__check_func_return_type): Use is_same to
	avoid using _is_convertible on incomplete types.
	* testsuite/20_util/function/65760.cc: New.

From-SVN: r222581
2015-04-29 17:07:47 +01:00
Jonathan Wakely 73d81d3a6b re PR libstdc++/60333 (type_traits make_signed, make_unsigned missing support for long long enumerations)
PR libstdc++/60333
	* include/std/type_traits (__make_unsigned_selector<_Tp, false, true>):
	Handle enumeration types larger than sizeof(long).
	(__make_signed_selector<_Tp, false, true>): Find unsigned type then
	make it signed.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
	dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.

From-SVN: r222526
2015-04-28 14:21:54 +01:00
Jonathan Wakely bd1eb5e092 type_traits (void_t): Add.
* include/std/type_traits (void_t): Add.
	* testsuite/20_util/void_t/1.cc: New.

From-SVN: r222522
2015-04-28 13:07:34 +01:00
Jonathan Wakely 04f69fda7a re PR libstdc++/65499 (Missing "using namespace literals::chrono_literals" in std::chrono)
PR libstdc++/65499
	* include/std/chrono: Add using-directive for literals to std::chrono.
	* testsuite/20_util/duration/literals/65499.cc: New.

From-SVN: r221730
2015-03-27 12:45:10 +00:00
Jonathan Wakely 9d8dbe732a re PR libstdc++/65279 (std::scoped_allocator_adaptor is not assignable)
PR libstdc++/65279
	* include/std/scoped_allocator (__inner_type_impl,
	scoped_allocator_adaptor): Add defaulted copy assignment and move
	assignment operators.
	* testsuite/20_util/scoped_allocator/65279.cc: New.

From-SVN: r221119
2015-03-02 17:50:55 +00:00
Jonathan Wakely 3ecec1eff7 re PR libstdc++/56785 (std::tuple of two elements does not apply empty base class optimization when one of its elements is a std::tuple with two elements)
PR libstdc++/56785
	* include/std/tuple (_Tuple_impl): Remove zero-element specialization
	and define one-element specialization.
	* testsuite/20_util/tuple/56785.cc: New.

From-SVN: r219785
2015-01-17 00:21:41 +00:00
Jonathan Wakely 0edf5aadea re PR libstdc++/64476 (std::uninitialized_copy tests assignability the wrong way, resulting in performance pessimization)
PR libstdc++/64476
	* include/bits/stl_uninitialized.h (uninitialized_copy): Fix
	is_assignable arguments.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc:
	New.

From-SVN: r219398
2015-01-09 18:02:47 +00:00
Jonathan Wakely c66b93fe20 re PR libstdc++/60132 (C++11: lack of is_trivially_copy_constructible)
PR libstdc++/60132
	* include/std/type_traits (has_trivial_default_constructor,
	has_trivial_copy_constructor, has_trivial_copy_assign): Add deprecated
	attribute.
	* testsuite/20_util/has_trivial_copy_assign/requirements/
	explicit_instantiation.cc: Use -Wno-deprecated.
	* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	explicit_instantiation.c: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/value.cc:
	Likewise.
	* testsuite/20_util/pair/requirements/dr801.cc: Replace deprecated
	trait.
	* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
	* testsuite/util/testsuite_common_types.h: Likewise.

From-SVN: r219350
2015-01-08 16:24:55 +00:00
Jakub Jelinek 5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Ville Voutilainen 8dff34fe8e re PR libstdc++/60271 ([DR2369] [C++1y] std::max(initializer_list<T>) cannot use std::max_element)
2014-12-22  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/60271
	C++14 constexpr min, max, minmax, min_element, max_element
	and minmax_element. Also constexpr for 20.9.5-20.9.9,
	aka various library functors.
	* include/bits/c++config: Add _GLIBCXX14_CONSTEXPR.
	* include/bits/algorithmfwd.h (min, max, minmax, min_element,
	max_element): Use it.
	* include/bits/predefined_ops.h (_Iter_less_iter, __iter_less_iter,
	_Iter_comp_iter, __iter_comp_iter): Likewise.
	* include/bits/stl_algo.h (minmax, __minmax_element, minmax_element,
	min, max, __min_element, min_element, __max_element, max_element)
	Likewise.
	* include/bits/stl_algobase.h (min, max): Likewise.
	* include/bits/stl_function.h (plus, minus, multiplies, divides,
	modulus, negate, equal_to, not_equal_to, greater, less, greater_equal,
	less_equal, logical_and, logical_or, logical_not, bit_and, bit_or,
	bit_xor, bit_not, unary_negate, not1, binary_negate, not2): Likewise.
	* testsuite/20_util/function_objects/constexpr.cc: New.
	* testsuite/25_algorithms/max/constexpr.cc: Likewise.
	* testsuite/25_algorithms/max_element/constexpr.cc: Likewise.
	* testsuite/25_algorithms/min/constexpr.cc: Likewise.
	* testsuite/25_algorithms/min_element/constexpr.cc: Likewise.
	* testsuite/25_algorithms/minmax/constexpr.cc: Likewise.
	* testsuite/25_algorithms/minmax_element/constexpr.cc: Likewise.
	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.

From-SVN: r219015
2014-12-22 16:00:16 +00:00
Jonathan Wakely d95521b411 re PR libstdc++/58594 (std::make_shared does not accept const types as parameters)
PR libstdc++/58594
	* include/bits/shared_ptr_base.h: Cast away cv-quals.
	* testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc: New.
	* testsuite/20_util/shared_ptr/creation/private.cc: Make allocator
	rebindable so test passes with -fno-rtti.

From-SVN: r218691
2014-12-12 21:05:35 +00:00
Jonathan Wakely 7b55fa54d4 re PR libstdc++/63840 (std::function copy constructor deletes an uninitialized pointer if new fails)
PR libstdc++/63840
	* include/std/functional (function::function(const function&)): Set
	_M_manager after operations that might throw.
	* include/tr1/functional (function::function(const function&),
	function::function(_Functor, _Useless)): Likewise.
	* testsuite/20_util/function/63840.cc: New.
	* testsuite/tr1/3_function_objects/function/63840.cc: New.

From-SVN: r218215
2014-12-01 13:49:20 +00:00
Ville Voutilainen 75bda2e813 re PR c++/63959 (G++ misreports volatile int as trivially copyable)
PR c++/63959
	* tree.c (trivially_copyable_p): Check for CP_TYPE_VOLATILE_P.

From-SVN: r217893
2014-11-20 16:51:04 -05:00
Jonathan Wakely be8de8946e std::shared_ptr atomic operations
PR libstdc++/57250
	* config/abi/pre/gnu.ver: Export new symbols.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/shared_ptr_atomic.h: Define atomic access functions.
	* include/std/memory: Include new header.
	* src/c++11/shared_ptr.cc (_Sp_locker): Define and use mutex pool.
	* testsuite/20_util/shared_ptr/atomic/1.cc: New.
	* testsuite/20_util/shared_ptr/atomic/2.cc: New.
	* testsuite/20_util/shared_ptr/atomic/3.cc: New.

From-SVN: r217452
2014-11-12 23:55:11 +00:00
Jonathan Wakely d8af84e67b Implement resolutions of LWG 2399, 2400 and 2401.
* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Define
	_Convertible alias template to simplify constraints.
	(shared_ptr(unique_ptr<TD>&&)): Constrain (LWG 2399).
	* include/bits/shared_ptr_base.h: Likewise.
	(_Sp_counted_deleter::_M_get_deleter()): Use addressof (LWG 2400).
	* include/std/functional (function::operator=(nullptr_t)): Add
	noexcept (LWG 2401).
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

From-SVN: r217442
2014-11-12 19:41:36 +00:00
Jonathan Wakely f871d7f9f4 LWG DR 2315. weak_ptr should be movable
* include/bits/shared_ptr.h (weak_ptr): Add move constructor and
	assignment.
	* include/bits/shared_ptr_base.h (__weak_count, __weak_ptr): Likewise.
	Use nullptr and injected class name.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

From-SVN: r217413
2014-11-12 11:54:08 +00:00
Jonathan Wakely 098c88fb10 Add -Wno-deprecated to dg-options.
PR c++/33911
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Use -Wno-deprecated.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/ext/array_allocator/variadic_construct.cc: Likewise.

From-SVN: r217412
2014-11-12 10:32:17 +00:00
Jonathan Wakely 847e9cf81e Define __void_t and SFINAE-friendly iterator_traits.
* include/std/type_traits (__void_t): Define new alias template.
	(_GLIBCXX_HAS_NESTED_TYPE): Redefine using __void_t.
	* include/std/functional (_Maybe_get_result_type): Likewise.
	* include/bits/stl_iterator_base_types.h (__iterator_traits): Likewise.
	* include/bits/uses_allocator.h (__uses_allocator_helper): Likewise.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Adjust to changes
	in _GLIBCXX_HAS_NESTED_TYPE.

From-SVN: r217395
2014-11-11 23:57:35 +00:00
Jonathan Wakely f6b640be24 Make std::mem_fn work with varargs functions.
* include/std/functional (_Mem_fn_traits): Add partial specializations
	for varargs functions.
	(_Mem_fn_base): Do not check arguments are convertible for varargs.
	(_Bind_check_arity): Add partial specializations for varargs functions.
	* include/std/type_traits (__bool_constant): Add alias template.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/bind/refqual.cc: New, test ref-qualifiers.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/function_objects/mem_fn/refqual.cc: Test varargs.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
	dg-error.

From-SVN: r217393
2014-11-11 23:38:34 +00:00
Jonathan Wakely 565115eaaf Make reference_wrapper trivially copyable.
* include/std/functional (reference_wrapper): Define copy constructor
	and copy assignment as defaulted.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/reference_wrapper/requirements.cc: New.

From-SVN: r217067
2014-11-04 02:49:33 +00:00
Jonathan Wakely afc449e82c Check number of arguments in bind expressions.
* include/std/functional (_Mem_fn_traits_base::__arity): New typedef.
	(_Mem_fn_base::_Arity): New typedef.
	(_Bind_check_arity): New class template.
	(_Bind_helper, _Bindres_helper, _Bind_simple_helper): Check arity.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.

From-SVN: r217025
2014-11-03 02:55:36 +00:00
Jonathan Wakely 8d9076969b Add support for ref-qualified functions to std::mem_fn
PR libstdc++/57898
	* include/std/functional (_Mem_fn_traits_base): New class template.
	(_Mem_fn_traits): New class template with specializations for every
	combination of cv-qualified and ref-qualified member function.
	(_Mem_fn_base): New class template for all pointer to member function
	types and partial specialization for pointer to member object types.
	(_Mem_fn): Inherit from _Mem_fn_base.
	* testsuite/20_util/function_objects/mem_fn/refqual.cc: New.

From-SVN: r217024
2014-11-03 02:55:32 +00:00
Jonathan Wakely a56561ac2d Use perfect forwarding in std::function invokers.
* include/std/functional: (_Function_base::_Function_base()): Use
	nullptr instead of literal zero.
	(function::operator=(nullptr_t)): Likewise.
	(_Function_handler::_M_invoke): Use perfect forwarding for _ArgTypes.
	(function::_Invoker_type): Likewise.
	* testsuite/20_util/function/invoke/forwarding.cc: New.

From-SVN: r216849
2014-10-29 18:38:31 +00:00
Paolo Carlini 4415f7a538 libstdc++.exp: Prefer -std=gnu++11.
2014-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/lib/libstdc++.exp: Prefer -std=gnu++11.
	* testsuite/20_util/add_lvalue_reference/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/add_rvalue_reference/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/addressof/1.cc: Likewise.
	* testsuite/20_util/addressof/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/aligned_storage/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/aligned_storage/value.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/
	allocate_hint.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/construct.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/max_size.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/select.cc: Likewise.
	* testsuite/20_util/allocator_traits/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/allocator_traits/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/bad_function_call/
	cons_virtual_derivation.cc: Likewise.
	* testsuite/20_util/bind/35569.cc: Likewise.
	* testsuite/20_util/bind/38889.cc: Likewise.
	* testsuite/20_util/bind/42593.cc: Likewise.
	* testsuite/20_util/bind/45924.cc: Likewise.
	* testsuite/20_util/bind/48698.cc: Likewise.
	* testsuite/20_util/bind/49058_1.cc: Likewise.
	* testsuite/20_util/bind/49058_2.cc: Likewise.
	* testsuite/20_util/bind/all_bound.cc: Likewise.
	* testsuite/20_util/bind/conv_result.cc: Likewise.
	* testsuite/20_util/bind/cv_quals.cc: Likewise.
	* testsuite/20_util/bind/cv_quals_2.cc: Likewise.
	* testsuite/20_util/bind/cv_quals_3.cc: Likewise.
	* testsuite/20_util/bind/move.cc: Likewise.
	* testsuite/20_util/bind/nested.cc: Likewise.
	* testsuite/20_util/bind/placeholders.cc: Likewise.
	* testsuite/20_util/bind/ref.cc: Likewise.
	* testsuite/20_util/bind/ref2.cc: Likewise.
	* testsuite/20_util/bind/ref_neg.cc: Likewise.
	* testsuite/20_util/bind/socket.cc: Likewise.
	* testsuite/20_util/common_type/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/common_type/requirements/
	typedefs-1.cc: Likewise.
	* testsuite/20_util/conditional/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/conditional/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/decay/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/declval/requirements/1.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
	* testsuite/20_util/default_delete/48631_neg.cc: Likewise.
	* testsuite/20_util/default_delete/cons/constexpr.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/1.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/2.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/constexpr.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise.
	* testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise.
	* testsuite/20_util/duration/comparison_operators/1.cc: Likewise.
	* testsuite/20_util/duration/comparison_operators/
	constexpr.cc: Likewise.
	* testsuite/20_util/duration/cons/1.cc: Likewise.
	* testsuite/20_util/duration/cons/1_neg.cc: Likewise.
	* testsuite/20_util/duration/cons/2.cc: Likewise.
	* testsuite/20_util/duration/cons/constexpr.cc: Likewise.
	* testsuite/20_util/duration/cons/dr974_neg.cc: Likewise.
	* testsuite/20_util/duration/requirements/
	constexpr_functions.cc: Likewise.
	* testsuite/20_util/duration/requirements/
	explicit_instantiation/explicit_instantiation.cc: Likewise.
	* 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/duration_cast/constexpr.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/forward/1.cc: Likewise.
	* testsuite/20_util/forward/1_neg.cc: Likewise.
	* testsuite/20_util/forward/a.cc: Likewise.
	* testsuite/20_util/forward/b.cc: Likewise.
	* testsuite/20_util/forward/c_neg.cc: Likewise.
	* testsuite/20_util/forward/d.cc: Likewise.
	* testsuite/20_util/forward/e.cc: Likewise.
	* testsuite/20_util/forward/f_neg.cc: Likewise.
	* testsuite/20_util/forward/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/function/1.cc: Likewise.
	* testsuite/20_util/function/10.cc: Likewise.
	* testsuite/20_util/function/2.cc: Likewise.
	* testsuite/20_util/function/3.cc: Likewise.
	* testsuite/20_util/function/4.cc: Likewise.
	* testsuite/20_util/function/43397.cc: Likewise.
	* testsuite/20_util/function/48541.cc: Likewise.
	* testsuite/20_util/function/5.cc: Likewise.
	* testsuite/20_util/function/6.cc: Likewise.
	* testsuite/20_util/function/7.cc: Likewise.
	* testsuite/20_util/function/8.cc: Likewise.
	* testsuite/20_util/function/9.cc: Likewise.
	* testsuite/20_util/function/assign/move.cc: Likewise.
	* testsuite/20_util/function/assign/move_target.cc: Likewise.
	* testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
	* testsuite/20_util/function/cons/55320.cc: Likewise.
	* testsuite/20_util/function/cons/addressof.cc: Likewise.
	* testsuite/20_util/function/cons/callable.cc: Likewise.
	* testsuite/20_util/function/cons/move.cc: Likewise.
	* testsuite/20_util/function/cons/move_target.cc: Likewise.
	* testsuite/20_util/function/invoke/move_only.cc: Likewise.
	* testsuite/20_util/function/null_pointer_comparisons.cc: Likewise.
	* testsuite/20_util/function/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_assign/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_assign/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_document_words.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
	* testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
	* testsuite/20_util/hash/operators/size_t.cc: Likewise.
	* testsuite/20_util/hash/quality.cc: Likewise.
	* testsuite/20_util/hash/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/headers/functional/types_std_c++0x.cc: Likewise.
	* testsuite/20_util/headers/functional/
	using_namespace_std_placeholders.cc: Likewise.
	* testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
	* testsuite/20_util/headers/type_traits/types_std_c++0x.cc: Likewise.
	* testsuite/20_util/headers/type_traits/
	types_std_c++0x_neg.cc: Likewise.
	* testsuite/20_util/is_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_assignable/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_assignable/value.cc: Likewise.
	* testsuite/20_util/is_compound/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_compound/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_constructible/51185.cc: Likewise.
	* testsuite/20_util/is_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_constructible/value-2.cc: Likewise.
	* testsuite/20_util/is_convertible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_convertible/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_copy_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_copy_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_copy_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_copy_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_default_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_default_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_default_constructible/value.cc: Likewise.
	* testsuite/20_util/is_destructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_destructible/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_destructible/value.cc: Likewise.
	* testsuite/20_util/is_floating_point/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_floating_point/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_function/24808.cc: Likewise.
	* testsuite/20_util/is_function/35637.cc: Likewise.
	* testsuite/20_util/is_function/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_function/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_fundamental/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_fundamental/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_integral/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_integral/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_literal_type/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_literal_type/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_lvalue_reference/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_lvalue_reference/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_member_function_pointer/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_member_function_pointer/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_member_object_pointer/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_member_object_pointer/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_member_pointer/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_member_pointer/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_move_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_move_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_move_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_move_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_default_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_default_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_destructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_destructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_destructible/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_object/24808.cc: Likewise.
	* testsuite/20_util/is_object/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_object/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_pod/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_reference/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_reference/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_rvalue_reference/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_rvalue_reference/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_scalar/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_scalar/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_signed/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_standard_layout/requiremenents/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_standard_layout/requiremenents/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_trivial/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_trivial/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_unsigned/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/
	typedefs_neg.cc: Likewise.
	* testsuite/20_util/move/1.cc: Likewise.
	* testsuite/20_util/move/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/move_if_noexcept/1.cc: Likewise.
	* testsuite/20_util/move_if_noexcept/constexpr.cc: Likewise.
	* testsuite/20_util/move_if_noexcept/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/owner_less/cmp.cc: Likewise.
	* testsuite/20_util/pair/44487.cc: Likewise.
	* testsuite/20_util/pair/astuple/get.cc: Likewise.
	* testsuite/20_util/pair/comparison_operators/constexpr.cc: Likewise.
	* testsuite/20_util/pair/cons/constexpr.cc: Likewise.
	* testsuite/20_util/pair/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/20_util/pair/constexpr_get.cc: Likewise.
	* testsuite/20_util/pair/make_pair/constexpr.cc: Likewise.
	* testsuite/20_util/pair/moveable.cc: Likewise.
	* testsuite/20_util/pair/noexcept_move_assign.cc: Likewise.
	* testsuite/20_util/pair/noexcept_swap.cc: Likewise.
	* testsuite/20_util/pair/piecewise.cc: Likewise.
	* testsuite/20_util/pair/piecewise2.cc: Likewise.
	* testsuite/20_util/pair/requirements/dr801.cc: Likewise.
	* testsuite/20_util/pair/swap.cc: Likewise.
	* testsuite/20_util/pointer_traits/pointer_to.cc: Likewise.
	* testsuite/20_util/pointer_traits/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/pointer_traits/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/ratio/comparisons/comp1.cc: Likewise.
	* testsuite/20_util/ratio/comparisons/comp2.cc: Likewise.
	* testsuite/20_util/ratio/comparisons/comp3.cc: Likewise.
	* testsuite/20_util/ratio/cons/cons1.cc: Likewise.
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
	* testsuite/20_util/ratio/operations/45866.cc: Likewise.
	* testsuite/20_util/ratio/operations/47913.cc: Likewise.
	* testsuite/20_util/ratio/operations/53840.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops1.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops2.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops3.cc: Likewise.
	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
	* testsuite/20_util/ratio/requirements/constexpr_data.cc: Likewise.
	* testsuite/20_util/reference_wrapper/24803.cc: Likewise.
	* testsuite/20_util/reference_wrapper/41792.cc: Likewise.
	* testsuite/20_util/reference_wrapper/invoke-2.cc: Likewise.
	* testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
	* testsuite/20_util/reference_wrapper/ref_neg.cc: Likewise.
	* testsuite/20_util/reference_wrapper/result_type.cc: Likewise.
	* testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
	* testsuite/20_util/reference_wrapper/typedefs.cc: Likewise.
	* testsuite/20_util/remove_reference/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/result_of/1.cc: Likewise.
	* testsuite/20_util/result_of/2.cc: Likewise.
	* testsuite/20_util/scoped_allocator/1.cc: Likewise.
	* testsuite/20_util/scoped_allocator/2.cc: Likewise.
	* testsuite/20_util/scoped_allocator/propagation.cc: Likewise.
	* testsuite/20_util/scoped_allocator/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/scoped_allocator/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/
	unique_ptr_lvalue_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alloc_min.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/
	unique_ptr_deleter_ref_1.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/
	unique_ptr_deleter_ref_2.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/alloc_min.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
	* testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
	* testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/io.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/24805.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/owner_before.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/
	default_weaktoshared.cc: Likewise.
	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	move_iterators/1.cc: Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	move_iterators/1.cc: Likewise.
	* testsuite/20_util/steady_clock/constexpr_data.cc: Likewise.
	* testsuite/20_util/system_clock/1.cc: Likewise.
	* testsuite/20_util/system_clock/constexpr_data.cc: Likewise.
	* testsuite/20_util/time_point/1.cc: Likewise.
	* testsuite/20_util/time_point/2.cc: Likewise.
	* testsuite/20_util/time_point/3.cc: Likewise.
	* testsuite/20_util/time_point/comparison_operators/
	constexpr.cc: Likewise.
	* testsuite/20_util/time_point/cons/constexpr.cc: Likewise.
	* testsuite/20_util/time_point/nonmember/constexpr.cc: Likewise.
	* testsuite/20_util/time_point/requirements/
	constexpr_functions.cc: Likewise.
	* testsuite/20_util/time_point/requirements/
	explicit_instantiation/explicit_instantiation.cc: Likewise.
	* testsuite/20_util/time_point_cast/constexpr.cc: Likewise.
	* testsuite/20_util/tuple/48476.cc: Likewise.
	* testsuite/20_util/tuple/51365.cc: Likewise.
	* testsuite/20_util/tuple/comparison_operators/35480_neg.cc: Likewise.
	* testsuite/20_util/tuple/comparison_operators/
	comparisons.cc: Likewise.
	* testsuite/20_util/tuple/comparison_operators/constexpr.cc: Likewise.
	* testsuite/20_util/tuple/cons/41530.cc: Likewise.
	* testsuite/20_util/tuple/cons/44487.cc: Likewise.
	* testsuite/20_util/tuple/cons/45228.cc: Likewise.
	* testsuite/20_util/tuple/cons/48476.cc: Likewise.
	* testsuite/20_util/tuple/cons/allocators.cc: Likewise.
	* testsuite/20_util/tuple/cons/assignment.cc: Likewise.
	* testsuite/20_util/tuple/cons/big_tuples.cc: Likewise.
	* testsuite/20_util/tuple/cons/constexpr-2.cc: Likewise.
	* testsuite/20_util/tuple/cons/constexpr-3.cc: Likewise.
	* testsuite/20_util/tuple/cons/constructor.cc: Likewise.
	* testsuite/20_util/tuple/cons/converting.cc: Likewise.
	* testsuite/20_util/tuple/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/23978.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/48476.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/
	forward_as_tuple.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/make_tuple.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/tie.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/tie2.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/tuple_cat.cc: Likewise.
	* testsuite/20_util/tuple/cv_tuple_element.cc: Likewise.
	* testsuite/20_util/tuple/cv_tuple_size.cc: Likewise.
	* testsuite/20_util/tuple/element_access/constexpr_get.cc: Likewise.
	* testsuite/20_util/tuple/element_access/get.cc: Likewise.
	* testsuite/20_util/tuple/element_access/get2.cc: Likewise.
	* testsuite/20_util/tuple/moveable.cc: Likewise.
	* testsuite/20_util/tuple/moveable2.cc: Likewise.
	* testsuite/20_util/tuple/noexcept_move_assign.cc: Likewise.
	* testsuite/20_util/tuple/noexcept_swap.cc: Likewise.
	* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
	* testsuite/20_util/tuple/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/tuple/swap.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size.cc: Likewise.
	* testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
	* testsuite/20_util/typeindex/hash.cc: Likewise.
	* testsuite/20_util/typeindex/hash_code.cc: Likewise.
	* testsuite/20_util/typeindex/name.cc: Likewise.
	* testsuite/20_util/underlying_type/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/underlying_type/requirements/
	typedefs-1.cc: Likewise.
	* testsuite/20_util/underlying_type/requirements/
	typedefs-2.cc: Likewise.
	* testsuite/20_util/unique_ptr/54351.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/move.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/move_array.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/nullptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/comparison/42925.cc: Likewise.
	* testsuite/20_util/unique_ptr/comparison/dr1401.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/nullptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/pointer.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/pointer_array.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/ptr_deleter.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/hash/1.cc: Likewise.
	* testsuite/20_util/unique_ptr/modifiers/43183.cc: Likewise.
	* testsuite/20_util/unique_ptr/modifiers/48398.cc: Likewise.
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/requirements/
	explicit_instantiation/explicit_instantiation.cc: Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/
	comparisons.cc: Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/
	comparisons_array.cc: Likewise.
	* testsuite/20_util/unique_ptr/specialized_algorithms/
	swap.cc: Likewise.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/construction.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/uses_allocator/value.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
	* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.
	* testsuite/23_containers/array/capacity/
	constexpr_functions.cc: Likewise.
	* testsuite/23_containers/array/capacity/empty.cc: Likewise.
	* testsuite/23_containers/array/capacity/max_size.cc: Likewise.
	* testsuite/23_containers/array/capacity/size.cc: Likewise.
	* testsuite/23_containers/array/comparison_operators/equal.cc: Likewise.
	* testsuite/23_containers/array/comparison_operators/
	greater.cc: Likewise.
	* testsuite/23_containers/array/comparison_operators/
	greater_or_equal.cc: Likewise.
	* testsuite/23_containers/array/comparison_operators/less.cc: Likewise.
	* testsuite/23_containers/array/comparison_operators/
	less_or_equal.cc: Likewise.
	* testsuite/23_containers/array/comparison_operators/
	not_equal.cc: Likewise.
	* testsuite/23_containers/array/cons/
	aggregate_initialization.cc: Likewise.
	* testsuite/23_containers/array/element_access/54388.cc: Likewise.
	* testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
	* testsuite/23_containers/array/element_access/
	at_out_of_range.cc: Likewise.
	* testsuite/23_containers/array/element_access/back.cc: Likewise.
	* testsuite/23_containers/array/element_access/
	constexpr_element_access.cc: Likewise.
	* testsuite/23_containers/array/element_access/data.cc: Likewise.
	* testsuite/23_containers/array/element_access/front.cc: Likewise.
	* testsuite/23_containers/array/iterators/end_is_one_past.cc: Likewise.
	* testsuite/23_containers/array/range_access.cc: Likewise.
	* testsuite/23_containers/array/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/array/requirements/contiguous.cc: Likewise.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation/3.cc: Likewise.
	* testsuite/23_containers/array/requirements/fill.cc: Likewise.
	* testsuite/23_containers/array/requirements/member_swap.cc: Likewise.
	* testsuite/23_containers/array/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/array/requirements/
	zero_sized_arrays.cc: Likewise.
	* testsuite/23_containers/array/specialized_algorithms/
	swap.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/
	constexpr_get.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/
	tuple_element.cc: Likewise.
	* testsuite/23_containers/array/tuple_interface/tuple_size.cc: Likewise.
	* testsuite/23_containers/bitset/cons/2.cc: Likewise.
	* testsuite/23_containers/bitset/cons/3.cc: Likewise.
	* testsuite/23_containers/bitset/cons/50268.cc: Likewise.
	* testsuite/23_containers/bitset/cons/constexpr.cc: Likewise.
	* testsuite/23_containers/bitset/cons/dr1325-1.cc: Likewise.
	* testsuite/23_containers/bitset/cons/dr1325-2.cc: Likewise.
	* testsuite/23_containers/bitset/hash/1.cc: Likewise.
	* testsuite/23_containers/bitset/operations/constexpr-2.cc: Likewise.
	* testsuite/23_containers/bitset/operations/constexpr.cc: Likewise.
	* testsuite/23_containers/bitset/requirements/
	constexpr_functions.cc: Likewise.
	* testsuite/23_containers/bitset/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/bitset/to_ullong/1.cc: Likewise.
	* testsuite/23_containers/deque/capacity/moveable.cc: Likewise.
	* testsuite/23_containers/deque/capacity/resize_size.cc: Likewise.
	* testsuite/23_containers/deque/capacity/shrink_to_fit.cc: Likewise.
	* testsuite/23_containers/deque/cons/cons_size.cc: Likewise.
	* testsuite/23_containers/deque/cons/moveable.cc: Likewise.
	* testsuite/23_containers/deque/cons/moveable2.cc: Likewise.
	* testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
	* testsuite/23_containers/deque/init-list.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/erase/50529.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/erase/moveable.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/moveable.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/push_back/49836.cc: Likewise.
	* testsuite/23_containers/deque/modifiers/push_front/49836.cc: Likewise.
	* testsuite/23_containers/deque/range_access.cc: Likewise.
	* testsuite/23_containers/deque/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/deque/requirements/exception/
	basic.cc: Likewise.
	* testsuite/23_containers/deque/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/deque/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/deque/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/deque/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/forward_list/allocator/
	copy_assign.cc: Likewise.
	* testsuite/23_containers/forward_list/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/forward_list/allocator/
	move_assign.cc: Likewise.
	* testsuite/23_containers/forward_list/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/forward_list/allocator/swap.cc: Likewise.
	* testsuite/23_containers/forward_list/capacity/1.cc: Likewise.
	* testsuite/23_containers/forward_list/capacity/
	resize_size.cc: Likewise.
	* testsuite/23_containers/forward_list/comparable.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/1.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/2.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/3.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/4.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/5.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/6.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/7.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/8.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/9.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/cons_size.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/moveable.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/clear.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after2_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after3_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after4_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after5_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after6_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after7_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after8_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	erase_after9_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	insert_after1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	insert_after2_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	insert_after3_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	move_constructor.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after2_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after3_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after4_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after5_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after6_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/
	splice_after7_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/debug/swap.cc: Likewise.
	* testsuite/23_containers/forward_list/modifiers/1.cc: Likewise.
	* testsuite/23_containers/forward_list/modifiers/2.cc: Likewise.
	* testsuite/23_containers/forward_list/modifiers/3.cc: Likewise.
	* testsuite/23_containers/forward_list/modifiers/4.cc: Likewise.
	* testsuite/23_containers/forward_list/modifiers/5.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/1.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/2.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/3.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/4.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/5.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/6.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/7.cc: Likewise.
	* testsuite/23_containers/forward_list/operations/
	remove_freed.cc: Likewise.
	* testsuite/23_containers/forward_list/range_access.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	do_the_right_thing.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	dr438/assign_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	dr438/constructor.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	dr438/constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	dr438/constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	dr438/insert_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	exception/basic.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	exception/generation_prohibited.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/3.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/4.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	typedefs.cc: Likewise.
	* testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/tuple/types_std_c++0x.cc: Likewise.
	* testsuite/23_containers/list/capacity/resize_size.cc: Likewise.
	* testsuite/23_containers/list/cons/cons_size.cc: Likewise.
	* testsuite/23_containers/list/cons/moveable.cc: Likewise.
	* testsuite/23_containers/list/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/list/init-list.cc: Likewise.
	* testsuite/23_containers/list/modifiers/1_c++0x.cc: Likewise.
	* testsuite/23_containers/list/operations/2_c++0x.cc: Likewise.
	* testsuite/23_containers/list/operations/3_c++0x.cc: Likewise.
	* testsuite/23_containers/list/operations/42352.cc: Likewise.
	* testsuite/23_containers/list/range_access.cc: Likewise.
	* testsuite/23_containers/list/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/list/requirements/
	do_the_right_thing.cc: Likewise.
	* testsuite/23_containers/list/requirements/exception/
	basic.cc: Likewise.
	* testsuite/23_containers/list/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/list/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/list/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/list/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/list/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/map/cons/moveable.cc: Likewise.
	* testsuite/23_containers/map/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/map/element_access/2.cc: Likewise.
	* testsuite/23_containers/map/element_access/39901.cc: Likewise.
	* testsuite/23_containers/map/element_access/46148.cc: Likewise.
	* testsuite/23_containers/map/init-list.cc: Likewise.
	* testsuite/23_containers/map/modifiers/dr130.cc: Likewise.
	* testsuite/23_containers/map/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/map/modifiers/insert/2.cc: Likewise.
	* testsuite/23_containers/map/modifiers/insert/3.cc: Likewise.
	* testsuite/23_containers/map/modifiers/insert/4.cc: Likewise.
	* testsuite/23_containers/map/modifiers/insert/5.cc: Likewise.
	* testsuite/23_containers/map/range_access.cc: Likewise.
	* testsuite/23_containers/map/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/map/requirements/exception/basic.cc: Likewise.
	* testsuite/23_containers/map/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/map/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/map/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/map/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/map/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/multimap/cons/moveable.cc: Likewise.
	* testsuite/23_containers/multimap/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/multimap/init-list.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/dr130.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/insert/1.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/insert/2.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/insert/3.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/insert/4.cc: Likewise.
	* testsuite/23_containers/multimap/range_access.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/exception/
	basic.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/multimap/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/multiset/cons/moveable.cc: Likewise.
	* testsuite/23_containers/multiset/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/multiset/init-list.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/dr130.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/insert/3.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/insert/4.cc: Likewise.
	* testsuite/23_containers/multiset/range_access.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/exception/
	basic.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/multiset/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/priority_queue/moveable.cc: Likewise.
	* testsuite/23_containers/priority_queue/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/priority_queue/requirements/
	typedefs.cc: Likewise.
	* testsuite/23_containers/queue/moveable.cc: Likewise.
	* testsuite/23_containers/queue/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/queue/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/set/cons/moveable.cc: Likewise.
	* testsuite/23_containers/set/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/set/init-list.cc: Likewise.
	* testsuite/23_containers/set/modifiers/dr130.cc: Likewise.
	* testsuite/23_containers/set/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/set/modifiers/insert/2.cc: Likewise.
	* testsuite/23_containers/set/modifiers/insert/3.cc: Likewise.
	* testsuite/23_containers/set/range_access.cc: Likewise.
	* testsuite/23_containers/set/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/set/requirements/exception/basic.cc: Likewise.
	* testsuite/23_containers/set/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/set/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/set/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/set/requirements/
	explicit_instantiation/5_c++0x.cc: Likewise.
	* testsuite/23_containers/set/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/stack/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/stack/requirements/typedefs.cc: Likewise.
	* testsuite/23_containers/unordered_map/55043.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/56112.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/moveable.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	construct1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	construct2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	construct3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	construct4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	invalid_local_iterator_compare_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	invalid_local_iterator_range_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	use_erased_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	use_invalid_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/
	use_invalid_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/dr761.cc: Likewise.
	* testsuite/23_containers/unordered_map/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise.
	* testsuite/23_containers/unordered_map/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_map/erase/54276.cc: Likewise.
	* testsuite/23_containers/unordered_map/final_hash.cc: Likewise.
	* testsuite/23_containers/unordered_map/hash_policy/dr1189.cc: Likewise.
	* testsuite/23_containers/unordered_map/init-list.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/24061-map.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/
	array_syntax.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/
	array_syntax_move.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/map_range.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/map_single.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/
	map_single_move-1.cc: Likewise.
	* testsuite/23_containers/unordered_map/insert/
	map_single_move-2.cc: Likewise.
	* testsuite/23_containers/unordered_map/modifiers/emplace.cc: Likewise.
	* testsuite/23_containers/unordered_map/modifiers/reserve.cc: Likewise.
	* testsuite/23_containers/unordered_map/observers.cc: Likewise.
	* testsuite/23_containers/unordered_map/operations/count.cc: Likewise.
	* testsuite/23_containers/unordered_map/operators/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/profile/unordered.cc: Likewise.
	* testsuite/23_containers/unordered_map/range_access.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	cliterators.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	debug_mode.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	exception/basic.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	exception/generation_prohibited.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	exception/propagation_consistent.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/4.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	typedefs.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/moveable.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	construct1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	construct2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	construct3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	construct4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	insert1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	insert2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	insert3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	invalid_local_iterator_compare_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	invalid_local_iterator_range_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	use_erased_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	use_invalid_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	use_invalid_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/2.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/
	24061-multimap.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/
	51845-multimap.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/54276.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/final_hash.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/hash_policy/
	dr1189.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/init-list.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	24061-multimap.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/51866.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/52476.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	multimap_range.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	multimap_single.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	multimap_single_move-1.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	multimap_single_move-2.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/modifiers/
	emplace.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/modifiers/
	reserve.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/observers.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/operations/
	count.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/operators/1.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/operators/2.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/range_access.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	cliterators.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	exception/basic.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	exception/generation_prohibited.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	exception/propagation_consistent.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/4.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/requirements/
	typedefs.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/55043.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/copy.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/moveable.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	construct1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	construct2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	construct3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	construct4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	insert1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	insert2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	insert3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	invalid_local_iterator_compare_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	invalid_local_iterator_range_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	use_erased_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	use_invalid_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	use_invalid_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/erase/2.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/erase/
	24061-multiset.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/final_hash.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/hash_policy/
	dr1189.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/init-list.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/
	24061-multiset.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/51866.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/52476.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/
	hash_policy.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/
	multiset_range.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/
	multiset_single.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/insert/
	multiset_single_move.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/modifiers/
	emplace.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/modifiers/
	reserve.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/observers.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/operations/
	count.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/operators/1.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/range_access.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	cliterators.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	exception/basic.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	exception/generation_prohibited.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	exception/propagation_consistent.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/4.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/requirements/
	typedefs.cc: Likewise.
	* testsuite/23_containers/unordered_set/55043.cc: Likewise.
	* testsuite/23_containers/unordered_set/56267.cc: Likewise.
	* testsuite/23_containers/unordered_set/56278.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/moveable.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	construct1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	construct2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	construct3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	construct4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/insert4_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	invalid_local_iterator_compare_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	invalid_local_iterator_range_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	use_erased_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	use_invalid_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	use_invalid_local_iterator_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/erase/1.cc: Likewise.
	* testsuite/23_containers/unordered_set/erase/24061-set.cc: Likewise.
	* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_set/final_hash.cc: Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/26132.cc: Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/dr1189.cc: Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/
	load_factor.cc: Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/rehash.cc: Likewise.
	* testsuite/23_containers/unordered_set/init-list.cc: Likewise.
	* testsuite/23_containers/unordered_set/insert/24061-set.cc: Likewise.
	* testsuite/23_containers/unordered_set/insert/hash_policy.cc: Likewise.
	* testsuite/23_containers/unordered_set/insert/set_range.cc: Likewise.
	* testsuite/23_containers/unordered_set/insert/set_single.cc: Likewise.
	* testsuite/23_containers/unordered_set/insert/
	set_single_move.cc: Likewise.
	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/max_load_factor/
	robustness.cc: Likewise.
	* testsuite/23_containers/unordered_set/modifiers/emplace.cc: Likewise.
	* testsuite/23_containers/unordered_set/modifiers/reserve.cc: Likewise.
	* testsuite/23_containers/unordered_set/observers.cc: Likewise.
	* testsuite/23_containers/unordered_set/operations/count.cc: Likewise.
	* testsuite/23_containers/unordered_set/operators/1.cc: Likewise.
	* testsuite/23_containers/unordered_set/operators/52309.cc: Likewise.
	* testsuite/23_containers/unordered_set/range_access.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	cliterators.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	debug_mode.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	exception/basic.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	exception/generation_prohibited.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	exception/propagation_consistent.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/4.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/5.cc: Likewise.
	* testsuite/23_containers/unordered_set/requirements/
	typedefs.cc: Likewise.
	* testsuite/23_containers/vector/52591.cc: Likewise.
	* testsuite/23_containers/vector/allocator/copy_assign.cc: Likewise.
	* testsuite/23_containers/vector/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/vector/allocator/move_assign.cc: Likewise.
	* testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/vector/allocator/swap.cc: Likewise.
	* testsuite/23_containers/vector/bool/capacity/
	shrink_to_fit.cc: Likewise.
	* testsuite/23_containers/vector/bool/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/vector/bool/hash/1.cc: Likewise.
	* testsuite/23_containers/vector/bool/requirements/
	citerators.cc: Likewise.
	* testsuite/23_containers/vector/capacity/reserve/moveable.cc: Likewise.
	* testsuite/23_containers/vector/capacity/reserve/
	moveable2.cc: Likewise.
	* testsuite/23_containers/vector/capacity/resize/moveable.cc: Likewise.
	* testsuite/23_containers/vector/capacity/resize/moveable2.cc: Likewise.
	* testsuite/23_containers/vector/capacity/resize/
	resize_size.cc: Likewise.
	* testsuite/23_containers/vector/capacity/shrink_to_fit.cc: Likewise.
	* testsuite/23_containers/vector/capacity/shrink_to_fit2.cc: Likewise.
	* testsuite/23_containers/vector/cons/cons_size.cc: Likewise.
	* testsuite/23_containers/vector/cons/moveable.cc: Likewise.
	* testsuite/23_containers/vector/cons/moveable2.cc: Likewise.
	* testsuite/23_containers/vector/cons/
	noexcept_move_construct.cc: Likewise.
	* testsuite/23_containers/vector/debug/52433.cc: Likewise.
	* testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
	* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
	* testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
	* testsuite/23_containers/vector/ext_pointer/citerators.cc: Likewise.
	* testsuite/23_containers/vector/ext_pointer/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/23_containers/vector/ext_pointer/types/2.cc: Likewise.
	* testsuite/23_containers/vector/init-list.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/erase/50529.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/erase/moveable.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/moveable.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/moveable2.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/push_back/49836.cc: Likewise.
	* testsuite/23_containers/vector/range_access.cc: Likewise.
	* testsuite/23_containers/vector/requirements/citerators.cc: Likewise.
	* testsuite/23_containers/vector/requirements/
	do_the_right_thing.cc: Likewise.
	* testsuite/23_containers/vector/requirements/exception/
	basic.cc: Likewise.
	* testsuite/23_containers/vector/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/23_containers/vector/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/23_containers/vector/requirements/
	explicit_instantiation/1_c++0x.cc: Likewise.
	* testsuite/23_containers/vector/requirements/typedefs.cc: Likewise.
	* testsuite/27_io/basic_filebuf/open/char/5.cc: Likewise.
	* testsuite/27_io/basic_fstream/cons/char/1.cc: Likewise.
	* testsuite/27_io/basic_fstream/open/char/1.cc: Likewise.
	* testsuite/27_io/basic_ifstream/cons/char/2.cc: Likewise.
	* testsuite/27_io/basic_ifstream/open/char/2.cc: Likewise.
	* testsuite/27_io/basic_ofstream/cons/char/2.cc: Likewise.
	* testsuite/27_io/basic_ofstream/open/char/2.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/
	error_code.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
	error_code.cc: Likewise.
	* testsuite/27_io/headers/cinttypes/types_std_c++0x.cc: Likewise.
	* testsuite/27_io/ios_base/types/fmtflags/
	constexpr_operators.cc: Likewise.
	* testsuite/27_io/ios_base/types/iostate/
	constexpr_operators.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/
	constexpr_operators.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_money/char/1.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_money/char/
	51288.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_money/wchar_t/
	1.cc: Likewise.
	* testsuite/27_io/manipulators/extended/get_money/wchar_t/
	51288.cc: Likewise.
	* testsuite/27_io/manipulators/extended/put_money/char/1.cc: Likewise.
	* testsuite/27_io/manipulators/extended/put_money/char/
	51288.cc: Likewise.
	* testsuite/27_io/manipulators/extended/put_money/wchar_t/
	1.cc: Likewise.
	* testsuite/27_io/manipulators/extended/put_money/wchar_t/
	51288.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_replace/char/51711.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_replace/wchar_t/
	51711.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/cstring_op.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/moveable.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/pstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/range.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/string.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/string_op.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/wchar_t/range.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/wchar_t/string.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/47724.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/basic/
	string_range_01_02_03.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/default.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/range.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/extended/
	string_range_01_02_03.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/move_char.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/string_char.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc: Likewise.
	* testsuite/28_regex/basic_regex/requirements/
	constexpr_data.cc: Likewise.
	* testsuite/28_regex/init-list.cc: Likewise.
	* testsuite/28_regex/iterators/regex_token_iterator/ctors/
	wchar_t/default.cc: Likewise.
	* testsuite/28_regex/range_access.cc: Likewise.
	* testsuite/28_regex/traits/char/ctor.cc: Likewise.
	* testsuite/28_regex/traits/char/translate_nocase.cc: Likewise.
	* testsuite/28_regex/traits/char/value.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/ctor.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/translate_nocase.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/value.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/constexpr.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/copy_list.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/default.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/direct_list.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/single_value.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/user_pod.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/56011.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/
	integral_assignment.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/
	integral_conversion.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/
	pointer_partial_void.cc: Likewise.
	* testsuite/29_atomics/atomic/requirements/base_classes.cc: Likewise.
	* testsuite/29_atomics/atomic/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/clear/1.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/1.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/56012.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/aggregate.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/assign_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/default.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/requirements/
	standard_layout.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/test_and_set/
	explicit-hle.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/copy_list.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/default.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/direct_list.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/single_value.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/bitwise.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	bitwise_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	decrement.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	decrement_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	increment.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	increment_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	integral_assignment.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	integral_conversion.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/requirements/
	standard_layout.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/requirements/
	trivial.cc: Likewise.
	* testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc: Likewise.
	* testsuite/29_atomics/headers/atomic/macros.cc: Likewise.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Likewise.
	* testsuite/30_threads/async/42819.cc: Likewise.
	* testsuite/30_threads/async/49668.cc: Likewise.
	* testsuite/30_threads/async/54297.cc: Likewise.
	* testsuite/30_threads/async/any.cc: Likewise.
	* testsuite/30_threads/async/async.cc: Likewise.
	* testsuite/30_threads/async/launch.cc: Likewise.
	* testsuite/30_threads/async/sync.cc: Likewise.
	* testsuite/30_threads/call_once/39909.cc: Likewise.
	* testsuite/30_threads/call_once/49668.cc: Likewise.
	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
	* testsuite/30_threads/call_once/constexpr.cc: Likewise.
	* testsuite/30_threads/call_once/once_flag.cc: Likewise.
	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
	* testsuite/30_threads/condition_variable/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
	* testsuite/30_threads/condition_variable/native_handle/
	typesizes.cc: Likewise.
	* testsuite/30_threads/condition_variable/requirements/
	standard_layout.cc: Likewise.
	* testsuite/30_threads/condition_variable/requirements/
	typedefs.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/cons/
	assign_neg.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/cons/
	copy_neg.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
	* testsuite/30_threads/future/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/future/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/future/cons/default.cc: Likewise.
	* testsuite/30_threads/future/cons/move.cc: Likewise.
	* testsuite/30_threads/future/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/future/members/45133.cc: Likewise.
	* testsuite/30_threads/future/members/get.cc: Likewise.
	* testsuite/30_threads/future/members/get2.cc: Likewise.
	* testsuite/30_threads/future/members/share.cc: Likewise.
	* testsuite/30_threads/future/members/valid.cc: Likewise.
	* testsuite/30_threads/future/members/wait.cc: Likewise.
	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/future/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/headers/condition_variable/
	types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/lock/1.cc: Likewise.
	* testsuite/30_threads/lock/2.cc: Likewise.
	* testsuite/30_threads/lock/3.cc: Likewise.
	* testsuite/30_threads/lock/4.cc: Likewise.
	* testsuite/30_threads/lock_guard/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise.
	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/mutex/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/mutex/requirements/standard_layout.cc: Likewise.
	* testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise.
	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
	* testsuite/30_threads/packaged_task/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.
	* testsuite/30_threads/promise/cons/1.cc: Likewise.
	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
	* testsuite/30_threads/promise/cons/alloc2.cc: Likewise.
	* testsuite/30_threads/promise/cons/alloc_min.cc: Likewise.
	* testsuite/30_threads/promise/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/promise/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/promise/cons/move.cc: Likewise.
	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
	* testsuite/30_threads/promise/members/swap.cc: Likewise.
	* testsuite/30_threads/promise/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/promise/uses_allocator.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/dest/
	destructor_locked.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/native_handle/
	typesizes.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/requirements/
	standard_layout.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/requirements/
	typedefs.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/
	assign_neg.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/cons/
	copy_neg.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/dest/
	destructor_locked.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	native_handle/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	requirements/typedefs.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	try_lock_for/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	try_lock_for/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	try_lock_for/3.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	try_lock_until/1.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/
	try_lock_until/2.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/assign.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/copy.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/default.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise.
	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
	* testsuite/30_threads/shared_future/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/this_thread/1.cc: Likewise.
	* testsuite/30_threads/this_thread/2.cc: Likewise.
	* testsuite/30_threads/this_thread/3.cc: Likewise.
	* testsuite/30_threads/this_thread/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/1.cc: Likewise.
	* testsuite/30_threads/thread/cons/2.cc: Likewise.
	* testsuite/30_threads/thread/cons/3.cc: Likewise.
	* testsuite/30_threads/thread/cons/4.cc: Likewise.
	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
	* testsuite/30_threads/thread/cons/5.cc: Likewise.
	* testsuite/30_threads/thread/cons/6.cc: Likewise.
	* testsuite/30_threads/thread/cons/7.cc: Likewise.
	* testsuite/30_threads/thread/cons/8.cc: Likewise.
	* testsuite/30_threads/thread/cons/9.cc: Likewise.
	* testsuite/30_threads/thread/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/thread/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
	* testsuite/30_threads/thread/id/hash.cc: Likewise.
	* testsuite/30_threads/thread/id/operators.cc: Likewise.
	* testsuite/30_threads/thread/members/1.cc: Likewise.
	* testsuite/30_threads/thread/members/2.cc: Likewise.
	* testsuite/30_threads/thread/members/3.cc: Likewise.
	* testsuite/30_threads/thread/members/4.cc: Likewise.
	* testsuite/30_threads/thread/members/5.cc: Likewise.
	* testsuite/30_threads/thread/members/
	hardware_concurrency.cc: Likewise.
	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
	* testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
	* testsuite/30_threads/thread/swap/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/native_handle/
	typesizes.cc: Likewise.
	* testsuite/30_threads/timed_mutex/requirements/
	standard_layout.cc: Likewise.
	* testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
	* testsuite/30_threads/try_lock/1.cc: Likewise.
	* testsuite/30_threads/try_lock/2.cc: Likewise.
	* testsuite/30_threads/try_lock/3.cc: Likewise.
	* testsuite/30_threads/try_lock/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
	* testsuite/30_threads/unique_lock/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise.
	* testsuite/ext/array_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/bitmap_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/iota/cxx0x.cc: Likewise.
	* testsuite/ext/is_heap/47709.cc: Likewise.
	* testsuite/ext/is_sorted/cxx0x.cc: Likewise.
	* testsuite/ext/malloc_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/mt_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/new_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/pool_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/profile/all.cc: Likewise.
	* testsuite/ext/rope/40299.cc: Likewise.
	* testsuite/ext/rope/44708.cc: Likewise.
	* testsuite/ext/rope/44963.cc: Likewise.
	* testsuite/ext/throw_allocator/variadic_construct.cc: Likewise.
	* testsuite/ext/vstring/capacity/shrink_to_fit.cc: Likewise.
	* testsuite/ext/vstring/cons/moveable.cc: Likewise.
	* testsuite/ext/vstring/cons/noexcept_move_construct.cc: Likewise.
	* testsuite/ext/vstring/element_access/char/front_back.cc: Likewise.
	* testsuite/ext/vstring/element_access/wchar_t/front_back.cc: Likewise.
	* testsuite/ext/vstring/hash/char/1.cc: Likewise.
	* testsuite/ext/vstring/hash/wchar_t/1.cc: Likewise.
	* testsuite/ext/vstring/init-list.cc: Likewise.
	* testsuite/ext/vstring/modifiers/assign/move_assign.cc: Likewise.
	* testsuite/ext/vstring/modifiers/pop_back/char/1.cc: Likewise.
	* testsuite/ext/vstring/modifiers/pop_back/wchar_t/1.cc: Likewise.
	* testsuite/ext/vstring/operators/1.cc: Likewise.
	* testsuite/ext/vstring/operators/2.cc: Likewise.
	* testsuite/ext/vstring/range_access.cc: Likewise.
	* testsuite/ext/vstring/requirements/citerators.cc: Likewise.
	* testsuite/ext/vstring/requirements/do_the_right_thing.cc: Likewise.
	* testsuite/ext/vstring/requirements/exception/basic.cc: Likewise.
	* testsuite/ext/vstring/requirements/exception/
	generation_prohibited.cc: Likewise.
	* testsuite/ext/vstring/requirements/exception/
	propagation_consistent.cc: Likewise.
	* testsuite/ext/vstring/requirements/explicit_instantiation/
	char16_t/1.cc: Likewise.
	* testsuite/ext/vstring/requirements/explicit_instantiation/
	char32_t/1.cc: Likewise.
	* testsuite/ext/vstring/requirements/typedefs.cc: Likewise.
	* testsuite/performance/23_containers/copy_construct/
	unordered_set.cc: Likewise.
	* testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
	* testsuite/tr1/3_function_objects/bind/cv_quals.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/10.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cmath/51083.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/complex/51083.cc: Likewise.
	* testsuite/tr1/headers/c++200x/complex.cc: Likewise.
	* testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: Likewise.
	* testsuite/tr2/bases/requirements/explicit_instantiation.cc: Likewise.
	* testsuite/tr2/bases/requirements/typedefs.cc: Likewise.
	* testsuite/tr2/bases/value.cc: Likewise.
	* testsuite/tr2/direct_bases/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/tr2/direct_bases/requirements/typedefs.cc: Likewise.
	* testsuite/tr2/direct_bases/value.cc: Likewise.
	* testsuite/tr2/headers/all.cc: Likewise.
	* testsuite/tr2/headers/using_namespace_std_tr2.cc: Likewise.

From-SVN: r216299
2014-10-16 08:09:09 +00:00
Daniel Kruegler 37cfabb0b4 re PR c++/53000 (Conditional operator does not behave as standardized)
2014-10-15  Daniel Krugler  <daniel.kruegler@gmail.com>

	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
	Enable tests predicated on PR c++/53000.

From-SVN: r216287
2014-10-15 21:08:59 +00:00
Paolo Carlini d5ffd10bc2 57899.cc: Prefer -std=gnu++11.
2014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/20_util/bind/57899.cc: Prefer -std=gnu++11.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
	Likewise.
	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
	Likewise.
	* testsuite/20_util/duration/requirements/sfinae_friendly_1.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/copy_assign.cc: 
	Likewise.
	* testsuite/23_containers/unordered_map/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/move_assign.cc: 
	Likewise.
	* testsuite/23_containers/unordered_map/allocator/noexcept.cc: Likewise.
	* testsuite/23_containers/unordered_map/allocator/swap.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/copy.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/minimal.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/move.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/allocator/swap.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: 
	Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	bucket_size_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	cbegin_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	cend_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	end1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	end2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/
	max_load_factor_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	copy.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	copy_assign.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	minimal.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	move.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	move_assign.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	noexcept.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/allocator/
	swap.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	begin1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	begin2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	bucket_size_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	cbegin_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	cend_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	end1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	end2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/debug/
	max_load_factor_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/copy.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/
	copy_assign.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/minimal.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/move.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/
	move_assign.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/
	noexcept.cc: Likewise.
	* testsuite/23_containers/unordered_set/allocator/swap.cc: Likewise.
	* testsuite/23_containers/unordered_set/buckets/swap.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	bucket_size_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise
	* testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_set/debug/
	max_load_factor_neg.cc: Likewise.
	* testsuite/26_numerics/complex/abi_tag.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/54686.c: Likewise.
	* testsuite/26_numerics/random/bernoulli_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/bernoulli_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/bernoulli_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/bernoulli_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/bernoulli_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/bernoulli_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/binomial_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/binomial_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/binomial_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/binomial_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/binomial_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/binomial_distribution/requirements/
	explicit_instantiation/1.cc
	* testsuite/26_numerics/random/binomial_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/default_random_engine.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	base_copy.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	base_move.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/cons/
	initlist.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/cons/
	num_xbound_fun.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/cons/
	range.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/operators/
	call-default.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/discrete_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/exponential_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/
	requirements/explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/
	requirements/typedefs.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/gamma_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/geometric_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	base_copy.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	base_move.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/knuth_b.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
	constants.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
	non_uint_neg.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
	constants.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/minstd_rand.cc: Likewise.
	* testsuite/26_numerics/random/minstd_rand0.cc: Likewise.
	* testsuite/26_numerics/random/mt19937.cc: Likewise.
	* testsuite/26_numerics/random/mt19937_64.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/
	operators/equal.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/
	operators/inequal.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/
	operators/serialize.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/
	requirements/explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/
	requirements/typedefs.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/normal_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	cons/default.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	cons/initlist_fun.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	cons/num_xbound_fun.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	cons/range.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	operators/call-default.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	operators/equal.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	operators/inequal.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	operators/serialize.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	requirements/explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/
	requirements/typedefs.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	cons/default.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	cons/initlist_fun.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	cons/num_xbound_fun.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	cons/range.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	operators/call-default.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	operators/equal.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	operators/inequal.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	operators/serialize.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	requirements/explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/
	requirements/typedefs.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/poisson_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/random_device/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/random_device/cons/token.cc: Likewise.
	* testsuite/26_numerics/random/random_device/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/ranlux24.cc: Likewise.
	* testsuite/26_numerics/random/ranlux24_base.cc: Likewise.
	* testsuite/26_numerics/random/ranlux48.cc: Likewise.
	* testsuite/26_numerics/random/ranlux48_base.cc: Likewise.
	* testsuite/26_numerics/random/seed_seq/cons/default.cc: Likewise.
	* testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Likewise.
	* testsuite/26_numerics/random/seed_seq/cons/range.cc: Likewise.
	* testsuite/26_numerics/random/seed_seq/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	base_copy.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	base_move.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
	constants.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/student_t_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	seed1.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	seed2.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	operators/equal.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	operators/inequal.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	operators/serialize.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	requirements/typedefs.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/cons/
	default.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/cons/
	parms.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/26_numerics/random/weibull_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/basic/
	string_01.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/basic/
	string_range_00_03.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/basic/
	string_range_01_03.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/basic/
	string_range_02_03.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/
	cstring_plus.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/
	cstring_questionmark.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_any.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_range_00_03.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_range_01_03.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/extended/
	string_range_02_03.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/basic/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/basic/default.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/basic/
	pstring_wchar_t.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/copy_char.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/extended/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc: Likewise.
	* testsuite/28_regex/constants/error_type.cc: Likewise.
	* testsuite/28_regex/constants/match_flag_type.cc: Likewise.
	* testsuite/28_regex/constants/syntax_option_type.cc: Likewise.
	* testsuite/28_regex/iterators/regex_iterator/ctors/char/
	default.cc: Likewise.
	* testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/
	default.cc: Likewise.
	* testsuite/28_regex/iterators/regex_iterator/typedefs.cc: Likewise.
	* testsuite/28_regex/iterators/regex_token_iterator/ctors/char/
	default.cc: Likewise.
	* testsuite/28_regex/iterators/regex_token_iterator/
	typedefs.cc: Likewise.
	* testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
	* testsuite/28_regex/match_results/typedefs.cc: Likewise.
	* testsuite/28_regex/regex_error/base.cc: Likewise.
	* testsuite/28_regex/regex_error/regex_error.cc: Likewise.
	* testsuite/28_regex/requirements/typedefs.cc: Likewise.
	* testsuite/28_regex/sub_match/cast_char.cc: Likewise.
	* testsuite/28_regex/sub_match/cast_wchar_t.cc: Likewise.
	* testsuite/28_regex/sub_match/length.cc: Likewise.
	* testsuite/28_regex/sub_match/typedefs.cc: Likewise.
	* testsuite/28_regex/traits/char/isctype.cc: Likewise.
	* testsuite/28_regex/traits/char/length.cc: Likewise.
	* testsuite/28_regex/traits/char/lookup_classname.cc: Likewise.
	* testsuite/28_regex/traits/char/lookup_collatename.cc: Likewise.
	* testsuite/28_regex/traits/char/transform.cc: Likewise.
	* testsuite/28_regex/traits/char/transform_primary.cc: Likewise.
	* testsuite/28_regex/traits/char/translate.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/length.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/lookup_classname.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/transform.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/transform_primary.cc: Likewise.
	* testsuite/28_regex/traits/wchar_t/translate.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/arcsine_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/beta_distribution/operators/equal.cc: Likewise.
	* testsuite/ext/random/beta_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/beta_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/beta_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/beta_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/operators/equal.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/k_distribution/operators/equal.cc: Likewise.
	* testsuite/ext/random/k_distribution/operators/inequal.cc: Likewise.
	* testsuite/ext/random/k_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/k_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/k_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/cons/
	default.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/cons/
	default.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/cons/
	parms.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/pareto_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/rice_distribution/operators/equal.cc: Likewise.
	* testsuite/ext/random/rice_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/rice_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/rice_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/rice_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	copy.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	default.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	seed1.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	seed2.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	seed_seq.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/cons/
	default.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/cons/
	default.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/operators/
	equal.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/operators/
	inequal.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/operators/
	serialize.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/ext/random/von_mises_distribution/requirements/
	typedefs.cc: Likewise.
	* testsuite/performance/23_containers/insert/54075.cc: Likewise.
	* testsuite/performance/23_containers/insert/
	unordered_set.cc: Likewise.

From-SVN: r216272
2014-10-15 15:57:17 +00:00
Paolo Carlini cd9b223aaa limits: Remove stray semicolon.
2014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/limits: Remove stray semicolon.

2014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/20_util/add_const/requirements/alias_decl.cc: Prefer
	-std=gnu++14.
	* testsuite/20_util/add_cv/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/add_lvalue_reference/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/add_pointer/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/add_volatile/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/aligned_union/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/common_type/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/conditional/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/decay/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/duration/literals/61166.cc: Likewise.
	* testsuite/20_util/duration/literals/ns_detail.cc: Likewise.
	* testsuite/20_util/duration/literals/range.cc: Likewise.
	* testsuite/20_util/duration/literals/types.cc: Likewise.
	* testsuite/20_util/duration/literals/values.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/exchange/1.cc: Likewise.
	* testsuite/20_util/function_objects/comparisons_void.cc: Likewise.
	* testsuite/20_util/integer_sequence/intseq.cc: Likewise.
	* testsuite/20_util/integer_sequence/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/integral_constant/call_operator.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/pair/astuple/constexpr_get_by_type.cc: Likewise.
	* testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
	* testsuite/20_util/pair/astuple/get_by_type_neg.cc: Likewise.
	* testsuite/20_util/pair/astuple/get_neg.cc: Likewise.
	* testsuite/20_util/remove_all_extents/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/remove_const/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_cv/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_extent/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_pointer/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_reference/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/remove_volatile/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/result_of/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc:
	Likewise.
	* testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
	* testsuite/20_util/tuple/element_access/get_by_type.cc: Likewise.
	* testsuite/20_util/underlying_type/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
	* testsuite/21_strings/basic_string/literals/types.cc: Likewise.
	* testsuite/21_strings/basic_string/literals/values.cc: Likewise.
	* testsuite/25_algorithms/equal/2.cc: Likewise.
	* testsuite/25_algorithms/equal/check_type2.cc: Likewise.
	* testsuite/25_algorithms/is_permutation/2.cc: Likewise.
	* testsuite/25_algorithms/is_permutation/check_type2.cc: Likewise.
	* testsuite/25_algorithms/is_permutation/vectorbool.cc: Likewise.
	* testsuite/25_algorithms/mismatch/2.cc: Likewise.
	* testsuite/25_algorithms/mismatch/check_type2.cc: Likewise.
	* testsuite/26_numerics/complex/literals/values.cc: Likewise.
	* testsuite/27_io/manipulators/standard/char/quoted.cc: Likewise.
	* testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/requirements/
	standard_layout.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/experimental/optional/assignment/1.cc: Likewise.
	* testsuite/experimental/optional/assignment/2.cc: Likewise.
	* testsuite/experimental/optional/assignment/3.cc: Likewise.
	* testsuite/experimental/optional/assignment/4.cc: Likewise.
	* testsuite/experimental/optional/assignment/5.cc: Likewise.
	* testsuite/experimental/optional/assignment/6.cc: Likewise.
	* testsuite/experimental/optional/cons/copy.cc: Likewise.
	* testsuite/experimental/optional/cons/default.cc: Likewise.
	* testsuite/experimental/optional/cons/move.cc: Likewise.
	* testsuite/experimental/optional/cons/value.cc: Likewise.
	* testsuite/experimental/optional/constexpr/cons/default.cc: Likewise.
	* testsuite/experimental/optional/constexpr/cons/value.cc: Likewise.
	* testsuite/experimental/optional/constexpr/in_place.cc: Likewise.
	* testsuite/experimental/optional/constexpr/make_optional.cc: Likewise.
	* testsuite/experimental/optional/constexpr/nullopt.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/1.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/5.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/1.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/2.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/3.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/5.cc: Likewise.
	* testsuite/experimental/optional/constexpr/relops/6.cc: Likewise.
	* testsuite/experimental/optional/in_place.cc: Likewise.
	* testsuite/experimental/optional/make_optional.cc: Likewise.
	* testsuite/experimental/optional/nullopt.cc: Likewise.
	* testsuite/experimental/optional/observers/1.cc: Likewise.
	* testsuite/experimental/optional/observers/2.cc: Likewise.
	* testsuite/experimental/optional/observers/3.cc: Likewise.
	* testsuite/experimental/optional/observers/4.cc: Likewise.
	* testsuite/experimental/optional/observers/5.cc: Likewise.
	* testsuite/experimental/optional/relops/1.cc: Likewise.
	* testsuite/experimental/optional/relops/2.cc: Likewise.
	* testsuite/experimental/optional/relops/3.cc: Likewise.
	* testsuite/experimental/optional/relops/4.cc: Likewise.
	* testsuite/experimental/optional/relops/5.cc: Likewise.
	* testsuite/experimental/optional/relops/6.cc: Likewise.
	* testsuite/experimental/optional/requirements.cc: Likewise.
	* testsuite/experimental/optional/swap/1.cc: Likewise.
	* testsuite/experimental/string_view/capacity/1.cc: Likewise.
	* testsuite/experimental/string_view/cons/char/1.cc: Likewise.
	* testsuite/experimental/string_view/cons/char/2.cc: Likewise.
	* testsuite/experimental/string_view/cons/char/3.cc: Likewise.
	* testsuite/experimental/string_view/cons/wchar_t/1.cc: Likewise.
	* testsuite/experimental/string_view/cons/wchar_t/2.cc: Likewise.
	* testsuite/experimental/string_view/cons/wchar_t/3.cc: Likewise.
	* testsuite/experimental/string_view/element_access/char/1.cc: Likewise.
	* testsuite/experimental/string_view/element_access/char/2.cc: Likewise.
	* testsuite/experimental/string_view/element_access/char/empty.cc: 
	Likewise.
	* testsuite/experimental/string_view/element_access/char/
	front_back.cc: Likewise.
	* testsuite/experimental/string_view/element_access/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/element_access/wchar_t/2.cc:
	Likewise.
	* testsuite/experimental/string_view/element_access/wchar_t/empty.cc:
	Likewise.
	* testsuite/experimental/string_view/element_access/wchar_t/
	front_back.cc: Likewise.
	* testsuite/experimental/string_view/include.cc: Likewise.
	* testsuite/experimental/string_view/inserters/char/1.cc: Likewise.
	* testsuite/experimental/string_view/inserters/char/2.cc: Likewise.
	* testsuite/experimental/string_view/inserters/char/3.cc: Likewise.
	* testsuite/experimental/string_view/inserters/pod/10081-out.cc:
	Likewise.
	* testsuite/experimental/string_view/inserters/wchar_t/1.cc: Likewise.
	* testsuite/experimental/string_view/inserters/wchar_t/2.cc: Likewise.
	* testsuite/experimental/string_view/inserters/wchar_t/3.cc: Likewise.
	* testsuite/experimental/string_view/literals/types.cc: Likewise.
	* testsuite/experimental/string_view/literals/values.cc: Likewise.
	* testsuite/experimental/string_view/modifiers/remove_prefix/char/
	1.cc: Likewise.
	* testsuite/experimental/string_view/modifiers/remove_prefix/
	wchar_t/1.cc: Likewise.
	* testsuite/experimental/string_view/modifiers/remove_suffix/
	char/1.cc: Likewise.
	* testsuite/experimental/string_view/modifiers/remove_suffix/
	wchar_t/1.cc: Likewise.
	* testsuite/experimental/string_view/operations/compare/char/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/compare/char/13650.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/compare/wchar_t/
	13650.cc: Likewise.
	* testsuite/experimental/string_view/operations/copy/char/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/copy/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/data/char/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/data/wchar_t/1.cc: 
	Likewise.
	* testsuite/experimental/string_view/operations/find/char/1.cc: 
	Likewise.
	* testsuite/experimental/string_view/operations/find/char/2.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/find/char/3.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/find/char/4.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/find/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/find/wchar_t/2.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/find/wchar_t/3.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/find/wchar_t/4.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/rfind/char/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/rfind/char/2.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/rfind/char/3.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc:
	Likewise.
	* testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc: 
	Likewise.
	* testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc: 
	Likewise.
	* testsuite/experimental/string_view/operations/substr/char/1.cc: 
	Likewise.
	* testsuite/experimental/string_view/operations/substr/wchar_t/1.cc: 
	Likewise.
	* testsuite/experimental/string_view/operations/to_string/1.cc: 
	Likewise.
	* testsuite/experimental/string_view/operators/char/2.cc: Likewise.
	* testsuite/experimental/string_view/operators/wchar_t/2.cc: Likewise.
	* testsuite/experimental/string_view/range_access/char/1.cc: Likewise.
	* testsuite/experimental/string_view/range_access/wchar_t/1.cc: 
	Likewise.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/1.cc: Likewise.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/char/1.cc: Likewise.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/char16_t/1.cc: Likewise.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/char32_t/1.cc: Likewise.
	* testsuite/experimental/string_view/requirements/
	explicit_instantiation/wchar_t/1.cc: Likewise.
	* testsuite/experimental/string_view/requirements/typedefs.cc: Likewise.
	* testsuite/experimental/string_view/types/1.cc: Likewise.

From-SVN: r216257
2014-10-15 12:03:20 +00:00
Paolo Carlini 11915f2ead alias_decl.cc: New.
2014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/20_util/add_const/requirements/alias_decl.cc: New.
	* testsuite/20_util/add_cv/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/add_pointer/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/add_volatile/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/aligned_union/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_all_extents/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/remove_const/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_cv/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_extent/requirements/alias_decl.cc: Likewise.
	* testsuite/20_util/remove_pointer/requirements/alias_decl.cc:
	Likewise.
	* testsuite/20_util/remove_volatile/requirements/alias_decl.cc:
	Likewise.

From-SVN: r216245
2014-10-15 09:26:05 +00:00
Paolo Carlini 7f3083e71d limits: Remove stray spaces after backslash.
2014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/limits: Remove stray spaces after backslash.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r216242
2014-10-15 08:51:07 +00:00
Jonathan Wakely facb4d1b3e 1.cc: Add dg-require-stdint.
* testsuite/20_util/align/1.cc: Add dg-require-stdint.
	* testsuite/20_util/align/2.cc: Likewise.

From-SVN: r216214
2014-10-14 18:14:07 +01:00
Paolo Carlini 181e036880 typedefs.cc: Rename to alias_decl.cc.
2014-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/20_util/add_lvalue_reference/requirements/typedefs.cc:
	Rename to alias_decl.cc.
	* testsuite/20_util/add_rvalue_reference/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/common_type/requirements/typedefs-3.cc: Likewise.
	* testsuite/20_util/conditional/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/decay/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/enable_if/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
	Likewise.
	* testsuite/20_util/remove_reference/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/result_of/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/underlying_type/requirements/typedefs-3.cc:
	Likewise.

From-SVN: r216188
2014-10-14 08:45:38 +00:00
Jonathan Wakely 01d6452fe5 re PR libstdc++/57350 (std::align missing)
PR libstdc++/57350
	* include/std/memory (align): Do not adjust correctly aligned address.
	* testsuite/20_util/align/2.cc: New.

From-SVN: r216149
2014-10-13 15:08:44 +01:00
Rüdiger Sonderfeld 2f6ca9d317 memory (align): Define.
2014-10-13  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>

	* include/std/memory (align): Define.
	* testsuite/20_util/align/1.cc: New.

From-SVN: r216143
2014-10-13 11:05:21 +01:00
Ville Voutilainen f5e523b76d re PR libstdc++/60132 (C++11: lack of is_trivially_copy_constructible)
2014-10-09  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR libstdc++/60132
    	* include/std/type_traits (is_trivially_copyable,
    	is_trivially_constructible, is_trivially_default_constructible,
    	is_trivially_copy_constructible, is_trivially_move_constructible,
    	is_trivially_assignable, is_trivially_copy_assignable,
    	is_trivially_move_assignable): New.
    	* testsuite/20_util/is_trivially_assignable/requirements/
    	typedefs.cc: Likewise.
    	* testsuite/20_util/is_trivially_assignable/requirements/
    	explicit_instantiation.cc: Likewise.
    	* testsuite/20_util/is_trivially_assignable/value.cc: Likewise.
	* testsuite/20_util/is_trivially_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_trivially_constructible/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
	* testsuite/20_util/is_trivially_copyable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_trivially_copyable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_trivially_copyable/value.cc: Likewise.
	* testsuite/20_util/is_trivially_copy_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_trivially_copy_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_trivially_copy_assignable/value.cc: Likewise.
	* testsuite/20_util/is_trivially_copy_constructible/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_trivially_copy_constructible/requirements/
	explicit_instantiation.cc: Likewise.
    	* testsuite/20_util/is_trivially_copy_constructible/value.cc: Likewise.
    	* testsuite/20_util/is_trivially_default_constructible/requirements/
    	typedefs.cc: Likewise.
    	* testsuite/20_util/is_trivially_default_constructible/requirements/
    	explicit_instantiation.cc: Likewise.
    	* testsuite/20_util/is_trivially_default_constructible/
	value.cc: Likewise.
    	* testsuite/20_util/is_trivially_move_assignable/requirements/
    	typedefs.cc: Likewise.
    	* testsuite/20_util/is_trivially_move_assignable/requirements/
    	explicit_instantiation.cc: Likewise.
    	* testsuite/20_util/is_trivially_move_assignable/value.cc: Likewise.
    	* testsuite/20_util/is_trivially_move_constructible/requirements/
    	typedefs.cc: Likewise.
    	* testsuite/20_util/is_trivially_move_constructible/requirements/
    	explicit_instantiation.cc: Likewise.
    	* testsuite/20_util/is_trivially_move_constructible/value.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r216032
2014-10-09 08:37:26 +00:00
Edward Smith-Rowland f65eb9e641 stl_function.h: Generic associative lookup feature is not supported.
2014-10-02  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/bits/stl_function.h: Generic associative lookup feature
	is not supported.
	* testsuite/experimental/feat-lib-fund.cc: <experimental/any> is
	actually available.
	* testsuite/experimental/feat-cxx14.cc: Add test for __cpp_lib_is_final.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/duration/literals/range.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Adjust.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Adjust.

From-SVN: r215801
2014-10-02 12:38:41 +00:00
Edward Smith-Rowland 4db7fcb9a8 type_traits: Add is_final<> type trait for C++14.
2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* include/std/type_traits: Add is_final<> type trait for C++14.
	* testsuite/util/testsuite_tr1.h: Add 
	* testsuite/20_util/is_final/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_final/requirements/typedefs.cc: New.
	* testsuite/20_util/is_final/value.cc: New.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust.

From-SVN: r215753
2014-10-01 11:59:29 +00:00
Edward Smith-Rowland a15f7cb8b8 Implement SD-6: SG10 Feature Test Recommendations
2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement SD-6: SG10 Feature Test Recommendations
	* internal.h (lexer_state, spec_nodes): Add in__has_include__.
	* directives.c: Support __has_include__ builtin.
	* expr.c (parse_has_include): New function to parse __has_include__
	builtin; (eval_token()): Use it.
	* files.c (_cpp_has_header()): New funtion to look for header;
	(open_file_failed()): Not an error to not find a header file for
	__has_include__.
	* identifiers.c (_cpp_init_hashtable()): Add entry for __has_include__.
	* pch.c (cpp_read_state): Lookup __has_include__.
	* traditional.c (enum ls, _cpp_scan_out_logical_line()): Walk through
	__has_include__ statements.

2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement SD-6: SG10 Feature Test Recommendations
	* c-cppbuiltin.c (c_cpp_builtins()): Define language feature
	macros and the __has_header macro.

2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement SD-6: SG10 Feature Test Recommendations
	* include/bits/basic_string.h: Add __cpp_lib feature test macro.
	* include/bits/stl_algobase.h: Ditto.
	* include/bits/stl_function.h: Ditto.
	* include/bits/unique_ptr.h: Ditto.
	* include/std/chrono: Ditto.
	* include/std/complex: Ditto.
	* include/std/iomanip: Ditto.
	* include/std/shared_mutex: Ditto.
	* include/std/tuple: Ditto.
	* include/std/type_traits: Ditto.
	* include/std/utility: Ditto.
	* testsuite/experimental/feat-cxx14.cc: New.
	* testsuite/experimental/feat-lib-fund.cc: New.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/duration/literals/range.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Adjust.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Adjust.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Adjust.

2014-10-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement SD-6: SG10 Feature Test Recommendations
	* g++.dg/cpp1y/feat-cxx11-neg.C: New.
	* g++.dg/cpp1y/feat-cxx11.C: New.
	* g++.dg/cpp1y/feat-cxx14.C: New.
	* g++.dg/cpp1y/feat-cxx98.C: New.
	* g++.dg/cpp1y/feat-cxx98-neg.C: New.
	* g++.dg/cpp1y/phoobhar.h: New.
	* g++.dg/cpp1y/testinc/phoobhar.h: New.

From-SVN: r215752
2014-10-01 11:49:23 +00:00
Jonathan Wakely e51cf2f559 DR 1339
DR 1339
	* doc/xml/manual/status_cxx2011.xml: Update.
	* include/bits/stl_uninitialized.h (uninitialized_fill_n): Return
	an iterator.
	(__uninitialized_fill_n_a, __uninitialized_default_n_a): Likewise.
	* include/bits/stl_vector.h (vector::_M_fill_initialize,
	vector::_M_default_initialize): Use returned iterator.
	* include/bits/vector.tcc (vector::_M_fill_assign,
	vector::_M_fill_insert, vector::_M_default_append): Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
	16505.cc: Adjust return type.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
	dr1339.cc: New.

From-SVN: r215606
2014-09-25 16:27:18 +01:00
Jonathan Wakely f4081d133f re PR libstdc++/61947 (Ambiguous calls when constructing std::tuple)
PR libstdc++/61947
	* include/std/tuple (_Head_base): Use allocator_arg_t parameters to
	disambiguate unary constructors.
	(_Tuple_impl): Pass allocator_arg_t arguments.
	* testsuite/20_util/tuple/61947.cc: New.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error line.

From-SVN: r213221
2014-07-29 18:30:34 +01:00