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