Commit graph

49 commits

Author SHA1 Message Date
Jakub Jelinek
af5b72cf9f libstdc++: Implement C++26 P2927R3 - Inspecting exception_ptr
The following patch attempts to implement the C++26 P2927R3 - Inspecting exception_ptr
paper (but not including P3748R0, I plan to play with it incrementally and
it will really depend on the Constexpr exceptions patch).

The function template is implemented using an out of line private method of
exception_ptr, so that P3748R0 then can use if consteval and provide a
constant evaluation variant of it.

2025-06-26  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/version.def (exception_ptr_cast): Add.
	* include/bits/version.h: Regenerate.
	* libsupc++/exception: Define __glibcxx_want_exception_ptr_cast before
	including bits/version.h.
	* libsupc++/exception_ptr.h (std::exception_ptr_cast): Define.
	(std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Declare.
	* libsupc++/eh_ptr.cc
	(std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Define.
	* src/c++23/std.cc.in (std::exception_ptr_cast): Export.
	* config/abi/pre/gnu.ver: Export
	_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info
	at CXXABI_1.3.17.
	* testsuite/util/testsuite_abi.cc (check_version): Allow CXXABI_1.3.17.
	* testsuite/18_support/exception_ptr/exception_ptr_cast.cc: New test.
2025-06-26 16:18:38 +02:00
Jakub Jelinek
6441eb6dc0 Update copyright years. 2025-01-02 11:59:57 +01:00
Jakub Jelinek
a945c346f5 Update copyright years. 2024-01-03 12:19:35 +01:00
Jakub Jelinek
83ffe9cde7 Update copyright years. 2023-01-16 11:52:17 +01:00
Jonathan Wakely
b6b6600678 libstdc++: Fixes for tests that fail with -fno-rtti
This disables a use of dynamic_cast that is not valid for -fno-rtti and
adjusts some tests so they don't FAIL with -fno-rtti. Some tests are
skipped completely, and others just make use of typeid conditional on
the __cpp_rtti macro. A couple of tests were using typeid to verify
typedefs denote the right type, which can be done at compile-time using
templates instead.

libstdc++-v3/ChangeLog:

	* include/experimental/memory_resource [!__cpp_rtti]
	(__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
	when RTTI is disabled.
	* testsuite/17_intro/freestanding.cc: Require RTTI.
	* testsuite/18_support/exception/38732.cc: Likewise.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc:
	Likewise.
	* testsuite/18_support/nested_exception/68139.cc: Likewise.
	* testsuite/18_support/nested_exception/rethrow_if_nested.cc:
	Likewise.
	* testsuite/18_support/type_info/103240.cc: Likewise.
	* testsuite/18_support/type_info/fundamental.cc: Likewise.
	* testsuite/18_support/type_info/hash_code.cc: Likewise.
	* testsuite/20_util/any/assign/emplace.cc: Likewise.
	* testsuite/20_util/any/cons/in_place.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
	* testsuite/20_util/any/observers/type.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/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/polymorphic_allocator/resource.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
	* testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
	* testsuite/20_util/typeindex/comparison_operators_c++20.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/22_locale/ctype/is/string/89728_neg.cc: Likewise.
	* testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
	Likewise.
	* testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
	Likewise.
	* testsuite/22_locale/locale/13630.cc: Check type without using
	RTTI.
	* testsuite/23_containers/array/requirements/non_default_constructible.cc:
	Require RTTI.
	* testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
	* testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
	* testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
	* testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
	* testsuite/experimental/any/misc/any_cast.cc: Likewise.
	* testsuite/experimental/any/observers/type.cc: Likewise.
	* testsuite/experimental/memory_resource/resource_adaptor.cc:
	Likewise.
	* testsuite/lib/libstdc++.exp (check_effective_target_rtti):
	Define new proc.
	* testsuite/tr1/3_function_objects/function/1.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/2.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/3.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/4.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/5.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/6.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/7.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/8.cc: Likewise.
	* testsuite/tr2/bases/value.cc: Likewise.
	* testsuite/tr2/direct_bases/value.cc: Likewise.
	* testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
	types without RTTI.
2022-05-05 21:13:58 +01:00
Jakub Jelinek
7adcbafe45 Update copyright years. 2022-01-03 10:42:10 +01:00
Jonathan Wakely
a8e02a00a0 libstdc++: Make std::make_exception_ptr work with -fno-exceptions [PR85813]
This allows std::make_exception_ptr to be used in a translation unit
compiled with -fno-exceptions. This works because the new implementation
added for PR 68297 doesn't need to throw or catch anything. The catch is
there to handle exceptions from the constructor of the exception object,
which we can assume won't happen in a -fno-exceptions TU and so use the
__catch macro instead. If the constructor does throw (because it's
defined in a different TU which was compiled with exceptions enabled)
then that exception will propagate to the make_exception_ptr caller.
That seems acceptable for a program that is trying to mix & match TUs
compiled with and without exceptions, and using types that throw when
constructed. That should be rare, and can't reasonably be expected to
have sensible behaviour.

This also enables the new implementation for targets that use a
non-standard calling convention for the exceptionDestructor callback
(specifically, mingw, which uses __thiscall). All we need to do is mark
the __dest_thunk function template with the right calling convention.

Finally, the useless no-op definition of make_exception_ptr (which is
only used if both RTTI and exceptions are disabled) is marked
always_inline, to ensure that the linker won't keep that definition and
discard the functional ones when both definitions of the function are
present in the link. An alternative would be to add the abi_tag
attribute to the useless definition, but making it always_inline should
work, and it's small enough to always be inlined reliably.

libstdc++-v3/ChangeLog:

	PR libstdc++/85813
	* libsupc++/exception_ptr.h (__dest_thunk): Add macro for
	destructor calling convention.
	(make_exception_ptr): Enable non-throwing implementation for
	-fno-exceptions and for non-standard calling conventions. Use
	always_inline attribute on the useless no-rtti no-exceptions
	definition.
	* testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so
	the no-op implementation is still used.
2021-12-09 23:12:20 +00:00
Jonathan Wakely
a1ca039fc0 libstdc++: Fix std::exception_ptr regressions [PR103630]
This restores support for std::make_exception_ptr<E&> and for using
std::exception_ptr in C++98.

Because the new non-throwing implementation needs to use std::decay to
handle references the original throwing implementation is used for
C++98.

We also need to change the typeid expression so it doesn't yield the
dynamic type when the function parameter is a reference to a polymorphic
type. Otherwise the new exception object could be caught by any handler
matching the dynamic type, even though the actual exception object is
only a copy of the base class, sliced to the static type.

libstdc++-v3/ChangeLog:

	PR libstdc++/103630
	* libsupc++/exception_ptr.h (exception_ptr): Fix exception
	specifications on inline definitions.
	(make_exception_ptr): Decay the template parameter. Use typeid
	of the static type.
	* testsuite/18_support/exception_ptr/103630.cc: New test.
2021-12-09 23:02:37 +00:00
Jonathan Wakely
f4130a3eb5 libstdc++: Deprecate std::unexpected and handler functions
These functions have been deprecated since C++11, and were removed in
C++17. The proposal P0323 wants to reuse the name std::unexpected for a
class template, so we will need to stop defining the current function
for C++23 anyway.

This marks them as deprecated for C++11 and up, to warn users they won't
continue to be available. It disables them for C++17 and up, unless the
_GLIBCXX_USE_DEPRECATED macro is defined.

The <unwind-cxx.h> header uses std::unexpected_handler in the public
API, but since that type is the same as std::terminate_handler we can
just use that instead, to avoid warnings about it being deprecated.

libstdc++-v3/ChangeLog:

	* doc/xml/manual/evolution.xml: Document deprecations.
	* doc/html/*: Regenerate.
	* libsupc++/exception (unexpected_handler, unexpected)
	(get_unexpected, set_unexpected): Add deprecated attribute.
	Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
	deprecated warnings.
	* libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
	* libsupc++/eh_terminate.cc: Likewise.
	* libsupc++/eh_throw.cc (__cxa_init_primary_exception):
	Likewise.
	* libsupc++/unwind-cxx.h (struct __cxa_exception): Use
	terminate_handler instead of unexpected_handler.
	(struct __cxa_dependent_exception): Likewise.
	(__unexpected): Likewise.
	* testsuite/18_support/headers/exception/synopsis.cc: Add
	dg-warning for deprecated warning.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc:
	Disable deprecated warnings.
	* testsuite/18_support/set_unexpected.cc: Likewise.
	* testsuite/18_support/unexpected_handler.cc: Likewise.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp0x/lambda/lambda-eh2.C: Add dg-warning for new
	deprecation warnings.
	* g++.dg/cpp0x/noexcept06.C: Likewise.
	* g++.dg/cpp0x/noexcept07.C: Likewise.
	* g++.dg/eh/forced3.C: Likewise.
	* g++.dg/eh/unexpected1.C: Likewise.
	* g++.old-deja/g++.eh/spec1.C: Likewise.
	* g++.old-deja/g++.eh/spec2.C: Likewise.
	* g++.old-deja/g++.eh/spec3.C: Likewise.
	* g++.old-deja/g++.eh/spec4.C: Likewise.
	* g++.old-deja/g++.mike/eh33.C: Likewise.
	* g++.old-deja/g++.mike/eh34.C: Likewise.
	* g++.old-deja/g++.mike/eh50.C: Likewise.
	* g++.old-deja/g++.mike/eh51.C: Likewise.
2021-11-04 20:53:29 +00:00
Jonathan Wakely
6c0c7fc623 libstdc++: Move atomic functions to libsupc++ [PR 96657]
The changes for PR libstdc++/64735 mean that libsupc++ function might
now depend on the __exchange_and_add and __atomic_add functions defined
in config/cpu/*/atomicity.h which is not compiled into libsupc++. This
causes a link failure for some targets when trying to use libsupc++
without the rest of libstdc++.

This patch simply moves the definitions of those functions into
libsupc++ so that they are available there.

libstdc++-v3/ChangeLog:

	PR libstdc++/96657
	* libsupc++/Makefile.am: Add atomicity.cc here.
	* src/c++98/Makefile.am: Remove it from here.
	* libsupc++/Makefile.in: Regenerate.
	* src/c++98/Makefile.in: Regenerate.
	* testsuite/18_support/exception_ptr/96657.cc: New test.
2021-04-15 16:56:44 +01:00
Jakub Jelinek
99dee82307 Update copyright years. 2021-01-04 10:26:59 +01:00
Jonathan Wakely
1352ea1925 libstdc++: Inline std::exception_ptr members [PR 90295]
This inlines most members of std::exception_ptr so that all operations
on a null exception_ptr can be optimized away. This benefits code like
std::future and coroutines where an exception_ptr object is present to
cope with exceptional cases, but is usually not used and remains null.

Since those functions were previously non-inline we have to continue to
export them from the library, for objects that were compiled against the
old headers and expect to find definitions in the library.

In order to inline the copy constructor and destructor we need to export
the _M_addref() and _M_release() members that increment/decrement the
reference count when copying/destroying a non-null exception_ptr. The
copy ctor and dtor check for null and don't call _M_addref and
_M_release unless they need to. The checks for null pointers in
_M_addref and _M_release are still needed because old code might call
them without checking for null first. But we can use __builtin_expect to
predict that they are usually called for the non-null case.

libstdc++-v3/ChangeLog:

	PR libstdc++/90295
	* config/abi/pre/gnu.ver (CXXABI_1.3.13): New symbol version.
	(exception_ptr::_M_addref(), exception_ptr::_M_release()):
	Export symbols.
	* libsupc++/eh_ptr.cc (exception_ptr::exception_ptr()):
	Remove out-of-line definition.
	(exception_ptr::exception_ptr(const exception_ptr&)):
	Likewise.
	(exception_ptr::~exception_ptr()): Likewise.
	(exception_ptr::operator=(const exception_ptr&)):
	Likewise.
	(exception_ptr::swap(exception_ptr&)): Likewise.
	(exception_ptr::_M_addref()): Add branch prediction.
	* libsupc++/exception_ptr.h (exception_ptr::operator bool):
	Add noexcept.
	[!_GLIBCXX_EH_PTR_COMPAT] (operator==, operator!=): Define
	inline as hidden friends. Remove declarations at namespace
	scope.
	(exception_ptr::exception_ptr()): Define inline.
	(exception_ptr::exception_ptr(const exception_ptr&)):
	Likewise.
	(exception_ptr::~exception_ptr()): Likewise.
	(exception_ptr::operator=(const exception_ptr&)):
	Likewise.
	(exception_ptr::swap(exception_ptr&)): Likewise.
	* testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.13.
	* testsuite/18_support/exception_ptr/90295.cc: New test.
2020-10-06 17:24:16 +01:00
Jakub Jelinek
8d9254fc8a Update copyright years.
From-SVN: r279813
2020-01-01 12:51:42 +01:00
Jakub Jelinek
a554497024 Update copyright years.
From-SVN: r267494
2019-01-01 13:31:55 +01:00
Jakub Jelinek
85ec4feb11 Update copyright years.
From-SVN: r256169
2018-01-03 11:03:58 +01:00
Jonathan Wakely
95ed529d34 PR libstdc++/81469 deprecate std::uncaught_exception for C++17
PR libstdc++/81469
	* libsupc++/exception (uncaught_exception): Deprecate for C++17.
	* testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
	* testsuite/18_support/uncaught_exception/14026.cc: Likewise.

From-SVN: r253018
2017-09-20 17:34:49 +01:00
Jonathan Wakely
904112f6bb Adjust effective target selector to fix C++17 FAIL
* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
	effective target selector to prevent running in C++17 mode.

From-SVN: r244280
2017-01-10 17:44:42 +00:00
Pauli Nieminen
ed3cb49703 Support exception propagation without lock-free atomic int
2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/64735
	* acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
	* config.h.in: Regenerate.
	* config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
	(GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
	exports for exception_ptr, nested_exception, and future conditional.
	[HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
	exports for exception_ptr, nested_exception, and future conditional.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
	* include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
	* libsupc++/eh_atomics.h: New file for internal use only.
	(__eh_atomic_inc, __eh_atomic_dec): New.
	* libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
	(exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
	(rethrow_exception): Use eh_atomics.h reference counting helpers.
	* libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
	* libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
	* libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
	* libsupc++/exception_ptr.h: Likewise.
	* libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
	* libsupc++/nested_exception.cc: Remove check for
	ATOMIC_INT_LOCK_FREE.
	* libsupc++/nested_exception.h: Likewise.
	* src/c++11/future.cc: Likewise.
	* testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
	* testsuite/18_support/nested_exception/*: Likewise.
	* testsuite/30_threads/async/*: Likewise.
	* testsuite/30_threads/future/*: Likewise.
	* testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
	* testsuite/30_threads/packaged_task/*: Likewise.
	* testsuite/30_threads/promise/*: Likewise.
	* testsuite/30_threads/shared_future/*: Likewise.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r244051
2017-01-04 10:54:59 +00:00
Jakub Jelinek
cbe34bb5ed Update copyright years.
From-SVN: r243994
2017-01-01 13:07:43 +01:00
Jonathan Wakely
6652a944dc Use global operator new in std::make_exception_ptr
* libsupc++/exception_ptr.h (make_exception_ptr): Qualify new.
	* testsuite/18_support/exception_ptr/make_exception_ptr_2.cc: New
	test.

From-SVN: r241404
2016-10-21 14:21:09 +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
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
Jakub Jelinek
818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
Jennifer Yao
23c64853c8 More fine-grained autoconf checks for C99 library
2015-11-13  Jennifer Yao  <jenny.hyphen.fa@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/58393
	PR libstdc++/61580
	* acinclude.m4 (GLIBCXX_ENABLE_C99): Perform tests twice, with
	-std=c++11 as well as -std=c++98, and define separate macros for each.
	Cache the results of checking for complex math and wide character
	functions. Reformat for readability.
	* config.h.in: Regenerate.
	* include/bits/c++config: Define _GLIBCXX_USE_C99_XXX macros to
	either _GLIBCXX98_USE_C99_XXX or _GLIBCXX11_USE_C99_XXX according to
	language standard in use.
	* config/locale/dragonfly/c_locale.h (std::__convert_from_v): Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* config/locale/generic/c_locale.h (std::__convert_from_v): Likewise.
	* config/locale/gnu/c_locale.h (std::__convert_from_v): Likewise.
	* config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99_STDIO,
	_GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR.
	* configure: Regenerate.
	* include/bits/basic_string.h: Make numeric conversion functions
	depend on _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, or
	_GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99.
	* include/ext/vstring.h: Likewise.
	* include/bits/locale_facets.tcc (std::num_put::_M_insert_float):
	Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* include/bits/locale_facets_nonio.tcc (std::money_put::do_put):
	Likewise.
	* include/c_compatibility/math.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_MATH.
	* include/c_compatibility/wchar.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/c_global/cstdio: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.
	* include/c_global/cstdlib: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* include/c_global/cwchar: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/c_std/cstdio: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.
	* include/c_std/cstdlib: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* include/c_std/cwchar: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/tr1/cstdio: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.
	* include/tr1/cstdlib: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* include/tr1/cwchar: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_WCHAR.
	* include/tr1/stdlib.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDLIB.
	* src/c++98/locale_facets.cc (std::__num_base::_S_format_float):
	Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* testsuite/18_support/exception_ptr/60612-terminate.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
	(test01): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR.
	* 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/26_numerics/headers/cstdlib/13943.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
	* testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Likewise.
	* testsuite/lib/libstdc++.exp (check_v3_target_string_conversions):
	Change preprocessor #if conditional so that it uses
	_GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and
	_GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99.
	* testsuite/tr1/8_c_compatibility/cmath/templates.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH.
	* testsuite/tr1/8_c_compatibility/cstdio/functions.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO.
	* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB.
	* testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Replace
	_GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR.
	* testsuite/util/testsuite_fs.h: Replace _GLIBCXX_USE_C99 with
	_GLIBCXX_USE_C99_STDIO.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r230324
2015-11-13 14:51:25 +00:00
Jonathan Wakely
832ca6ac72 re PR libstdc++/64651 (std::rethrow_exception not found by ADL)
PR libstdc++/64651
	* libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration
	to __exception_ptr namespace.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL.
	Remove unnecessary test variables.

From-SVN: r230147
2015-11-11 10:08:23 +00:00
Dmitry Prokoptsev
f5eedc3915 re PR libstdc++/62258 (uncaught_exception() equals to `true' after rethrow_exception())
2015-04-27  Dmitry Prokoptsev  <dprokoptsev@gmail.com>
	    Michael Hanselmann  <public@hansmi.ch>

	PR libstdc++/62258
	* libsupc++/eh_ptr.cc (rethrow_exception): Increment count of
	uncaught exceptions.
	* testsuite/18_support/exception_ptr/62258.cc: New.

Co-Authored-By: Michael Hanselmann <public@hansmi.ch>

From-SVN: r222480
2015-04-27 20:44:30 +01:00
Jakub Jelinek
5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Jonathan Wakely
f034f3709a re PR libstdc++/64483 (FAIL: 18_support/exception_ptr/64241.cc (test for excess errors))
PR libstdc++/64483
	* testsuite/18_support/exception_ptr/64241.cc: Use
	dg-require-atomic-builtins.

From-SVN: r219174
2015-01-04 14:03:11 +00:00
Jonathan Wakely
8f596ff51a re PR libstdc++/64241 (make_exception_ptr returns garbage with -fno-exceptions)
PR libstdc++/64241
	* libsupc++/exception_ptr.h: Return empty object when exceptions are
	disabled.
	* testsuite/18_support/exception_ptr/64241.cc: New.

From-SVN: r218675
2014-12-12 15:10:08 +00:00
Paolo Carlini
d9e48a067d freestanding.cc: Prefer -std=gnu++11.
2014-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/17_intro/freestanding.cc: Prefer -std=gnu++11.
	* testsuite/17_intro/headers/c++200x/42319.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/all_no_exceptions.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/all_no_rtti.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/all_pedantic_errors.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/operator_names.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/stdc++.cc: Likewise.
	* testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc:
	Likewise.
	* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise.
	* testsuite/18_support/exception_ptr/40296.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/move.cc: Likewise.
	* testsuite/18_support/exception_ptr/requirements.cc: Likewise.
	* testsuite/18_support/exception_ptr/requirements_neg.cc: Likewise.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
	* testsuite/18_support/headers/cstdint/types_std_c++0x.cc: Likewise.
	* testsuite/18_support/initializer_list/constexpr.cc: Likewise.
	* testsuite/18_support/initializer_list/range_access.cc: Likewise.
	* testsuite/18_support/initializer_list/requirements/
	constexpr_functions.cc: Likewise.
	* testsuite/18_support/initializer_list/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/18_support/initializer_list/requirements/typedefs.cc: 
	Likewise.
	* testsuite/18_support/nested_exception/51438.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/40856.cc: Likewise.
	* testsuite/18_support/numeric_limits/char16_32_t.cc: Likewise.
	* testsuite/18_support/numeric_limits/cons/default_c++0x.cc: Likewise.
	* testsuite/18_support/numeric_limits/dr559.cc: Likewise.
	* testsuite/18_support/numeric_limits/lowest.cc: Likewise.
	* testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
	* testsuite/18_support/numeric_limits/requirements/
	constexpr_data.cc: Likewise.
	* testsuite/18_support/numeric_limits/requirements/
	constexpr_functions.cc: Likewise.
	* testsuite/18_support/type_info/fundamental.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/bool_neg.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/bool_neg.cc: 
	Likewise.
	* testsuite/19_diagnostics/error_condition/operators/equal.cc: Likewise.
	* testsuite/19_diagnostics/error_condition/operators/not_equal.cc: 
	Likewise.
	* testsuite/19_diagnostics/headers/system_error/34538.cc: Likewise.
	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: 
	Likewise.
	* testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc: 
	Likewise.
	* testsuite/19_diagnostics/logic_error/what-3.cc: Likewise.
	* testsuite/19_diagnostics/system_error/39880.cc: Likewise.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
	* testsuite/19_diagnostics/system_error/cons_virtual_derivation.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.

From-SVN: r216282
2014-10-15 18:31:10 +00:00
Rainer Orth
750dc27853 Fix 18_support/exception_ptr/60612-*.cc on non-C99 targets
* testsuite/18_support/exception_ptr/60612-terminate.cc
	(terminate, f): Wrap in _GLIBCXX_USE_C99.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise.

From-SVN: r208958
2014-03-31 13:14:12 +00:00
Jonathan Wakely
3941b26033 re PR libstdc++/60612 (Throwing exception, catching and rethrowing (std::exception_ptr) in destructor leads to segfault)
PR libstdc++/60612
	* libsupc++/eh_ptr.cc: Assert __cxa_dependent_exception layout is
	compatible with __cxa_exception.
	* libsupc++/unwind-cxx.h (__cxa_dependent_exception): Add padding.
	Fix typos in comments.
	* testsuite/18_support/exception_ptr/60612-terminate.cc: New.
	* testsuite/18_support/exception_ptr/60612-unexpected.cc: New.

From-SVN: r208871
2014-03-27 18:07:25 +00:00
Richard Sandiford
aa118a03c4 Update copyright years in libstdc++-v3/
From-SVN: r206301
2014-01-02 22:30:10 +00:00
Jonathan Wakely
ec98d01014 re PR libstdc++/56905 ([C++11][DR 1130] std::copy_exception should be removed or no longer be used)
PR libstdc++/56905
	* libsupc++/exception_ptr.h (copy_exception): Deprecate and
	move implementation to make_exception_ptr.
	* include/std/future (_State_base::_M_break_promise): Replace
	copy_exception with make_exception_ptr.
	* testsuite/18_support/exception_ptr/move.cc: Likewise.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
	* testsuite/30_threads/future/members/get2.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_value2.cc: Likewise.
	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.

From-SVN: r198265
2013-04-24 23:00:16 +01:00
Richard Sandiford
405feeb871 Update copyright in libstdc++-v3.
From-SVN: r195701
2013-02-03 17:54:05 +00:00
Jakub Jelinek
90d04a445c Update Copyright years for files modified in 2011 and/or 2012.
From-SVN: r194903
2013-01-04 13:49:55 +01:00
Benjamin Kosnik
a152e96f01 acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros.
2011-11-30  Benjamin Kosnik  <bkoz@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
        size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1,
        _GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4,
        _GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to
        indicate use of C++11 atomic builtins.
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h.
        * include/Makefile.in: Regenerate.
        * libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x.
        * libsupc++/Makefile.in: Regenerate.

        * include/bits/atomic_base.h: Move lock-free property macros...
        * libsupc++/atomic_lockfree_defines.h: ...here.
        * include/std/future: Use C++11 macros.
        * libsupc++/eh_ptr.cc: Same.
        * libsupc++/eh_throw.cc: Same.
        * libsupc++/exception: Same.
        * libsupc++/exception_ptr.h: Same.
        * libsupc++/guard.cc: Same.
        * libsupc++/nested_exception.cc: Same.
        * libsupc++/nested_exception.h: Same.
        * src/future.cc: Same.

        * include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS.

        * doc/doxygen/user.cfg.in
        * doc/xml/manual/concurrency_extensions.xml

        * testsuite/18_support/exception_ptr/lifespan.cc
        * testsuite/lib/libstdc++.exp

From-SVN: r181869
2011-12-01 02:20:32 +00:00
Paolo Carlini
567d4027a3 order_statistics_imp.hpp: Avoid -Wall warnings.
2010-06-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp:
	Avoid -Wall warnings.
	* testsuite/27_io/ios_base/failure/what-3.cc: Likewise.
	* testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_ostringstream/str/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sgetn/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/snextc/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sgetc/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Likewise.
	* testsuite/27_io/types/2.cc: Likewise.
	* testsuite/27_io/basic_istream/ignore/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
	* testsuite/27_io/basic_istream/peek/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
	* testsuite/27_io/basic_istream/ws/wchar_t/1.cc: Likewise.
	* testsuite/27_io/basic_istream/ws/char/1.cc: Likewise.
	* testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc: Likewise.
	* testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
	* testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc: Likewise.
	* testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/
	wchar_t/01.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
	01.cc: Likewise.
	* testsuite/27_io/fpos/mbstate_t/4_neg.cc: Likewise.
	* testsuite/27_io/fpos/mbstate_t/2.cc: Likewise.
	* testsuite/27_io/fpos/mbstate_t/3.cc: Likewise.
	* testsuite/27_io/fpos/mbstate_t/5.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/wchar_t/
	4.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_character/char/
	4.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/12790-4.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Likewise.
	* testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Likewise.
	* testsuite/25_algorithms/minmax/3.cc: Likewise.
	* testsuite/19_diagnostics/logic_error/what-3.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/what-3.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-3.cc: Likewise.
	* testsuite/24_iterators/front_insert_iterator/2.cc: Likewise.
	* testsuite/24_iterators/back_insert_iterator/2.cc: Likewise.
	* testsuite/24_iterators/insert_iterator/2.cc: Likewise.
	* testsuite/18_support/exception_ptr/make_exception_ptr.cc: Likewise.
	* testsuite/21_strings/c_strings/wchar_t/1.cc: Likewise.
	* testsuite/21_strings/c_strings/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/c_strings/char/1.cc: Likewise.
	* testsuite/21_strings/c_strings/char/2.cc: Likewise.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	copy.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	cons/copy.cc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/
	cons/copy.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/
	cons/copy.cc: Likewise.
	* testsuite/26_numerics/random/mersenne_twister_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/
	cons/copy.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/
	cons/copy.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/complex/complex_value.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/overloads.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++.cc: Likewise.
	* testsuite/26_numerics/slice_array/array_assignment.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/1.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/3.cc: Likewise.
	* testsuite/22_locale/money_put/put/char/12971.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise.
	* testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/1.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/2.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/3.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/4.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/5.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/6.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/7.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/8.cc: Likewise.
	* testsuite/22_locale/time_put/put/char/17038.cc: Likewise.
	* testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/num_put/put/char/1.cc: Likewise.
	* testsuite/22_locale/time_get/get_year/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_year/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_monthname/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_weekday/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_date/char/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/time_get/get_time/char/5.cc: Likewise.
	* testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/num_get/get/char/1.cc: Likewise.
	* testsuite/22_locale/moneypunct/members/wchar_t/1.cc: Likewise.
	* testsuite/22_locale/moneypunct/members/char/1.cc: Likewise.
	* testsuite/22_locale/ctype_base/mask.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry/requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	discard_block/requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	linear_congruential/requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	mersenne_twister/requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	xor_combine/requirements/constants.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cfenv/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cstdio/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cctype/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cmath/templates.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cmath/functions.cc: Likewise.
	* testsuite/tr1/8_c_compatibility/cwctype/functions.cc: Likewise.
	* testsuite/tr1/6_containers/utility/pair.cc: Likewise.
	* testsuite/29_atomics/atomic_address/cons/aggregate.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	increment_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	bitwise_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/operators/
	decrement_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_flag/cons/1.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
	* testsuite/23_containers/priority_queue/members/7161.cc
	* testsuite/23_containers/set/dr130.cc: Likewise.
	* testsuite/23_containers/list/pthread5.cc: Likewise.
	* testsuite/23_containers/map/dr130.cc: Likewise.
	* testsuite/util/exception/safety.h: Likewise.
	* testsuite/util/testsuite_common_types.h: Likewise.
	* testsuite/20_util/clocks/1.cc: Likewise.

From-SVN: r160416
2010-06-08 00:45:02 +00:00
Jonathan Wakely
b4e77f9b76 re PR libstdc++/40296 ([C++0x] std::exception_ptr comparisons)
2010-06-06  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/40296
	* libsupc++/exception_ptr.h (exception_ptr::exception_ptr): Replace
	__safe_bool constructor with nullptr_t constructor in C++0x mode.
	(exception_ptr::operator bool): Add explicit conversion to bool.
	(swap(exception_ptr&, exception_ptr&)): Add.
	(exception_ptr::_M_safe_bool_dummy): Only declare for old ABI.
	* libsupc++/eh_ptr.cc (exception_ptr::_M_safe_bool_dummy): Move
	next to other functions retained for ABI compatibility.
	* testsuite/18_support/exception_ptr/requirements.cc: New.
	* testsuite/18_support/exception_ptr/requirements_neg.cc: New.

From-SVN: r160340
2010-06-06 14:27:23 +01:00
Jonathan Wakely
bb9c865802 exception_ptr.h (make_exception_ptr): Add.
2010-05-07  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* libsupc++/exception_ptr.h (make_exception_ptr): Add.
	* testsuite/18_support/exception_ptr/make_exception_ptr.cc: New.

From-SVN: r159144
2010-05-07 02:05:38 +01:00
Jonathan Wakely
9fdcbf4031 exception_ptr.h (exception_ptr::swap(exception_ptr&&)): Remove.
2009-06-16  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* libsupc++/exception_ptr.h (exception_ptr::swap(exception_ptr&&)):
	Remove.
	(exception_ptr::operator=(exception_ptr&&)): Cast source to
	rvalue-reference so that move constructor is called.
	* testsuite/18_support/exception_ptr/move.cc: New.

From-SVN: r148555
2009-06-16 22:24:41 +01:00
Paolo Carlini
110a123aae re PR libstdc++/40296 ([C++0x] std::exception_ptr comparisons)
2009-06-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40296
	* libsupc++/exception_ptr.h (exception_ptr::operator!,
	exception_ptr::operator __safe_bool): Only declare when
	_GLIBCXX_EH_PTR_COMPAT is undefined.
	* libsupc++/eh_ptr.cc: Define _GLIBCXX_EH_PTR_COMPAT before including
	exception_ptr.
	* testsuite/18_support/exception_ptr/40296.cc: New.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: Adjust.
	* testsuite/18_support/nested_exception/cons.cc: Likewise.
	* testsuite/18_support/nested_exception/nested_ptr.cc: Likewise.
	* testsuite/18_support/exception_ptr/current_exception.cc: Likewise.

From-SVN: r148122
2009-06-03 10:37:20 +00:00
Jakub Jelinek
748086b7b2 Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
From-SVN: r145841
2009-04-09 17:00:19 +02:00
Paolo Carlini
30a333ceeb [multiple changes]
2008-08-23  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/lib/libstdc++.exp (check_v3_target_atomic_builtins): Add.
	* testsuite/lib/dg-options.exp (dg-require-atomic-builtins): Likewise.
	* testsuite/18_support/exception_ptr/current_exception.cc: Use it.
        * testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
        * testsuite/18_support/exception_ptr/lifespan.cc: Likewise.

2008-08-23  Sebastian Redl <sebastian.redl@getdesigned.at>

	Add (again) exception propagation support as per N2179.  Feature is
	available only when _GLIBCXX_ATOMIC_BUILTINS_4 is defined.
	* libsupc++/exception_ptr.h (exception_ptr, current_exception,
        copy_exception, rethrow_exception): New file, implement exception
	propagation.
        * libsupc++/eh_ptr.cc (exception_ptr, current_exception,
        rethrow_exception, __gxx_dependent_exception_cleanup): Likewise.
        * libsupc++/unwind-cxx.h (__cxa_exception): Add reference count.
	(__cxa_dependent_exception, __cxa_allocate_dependent_exception,
        __cxa_free_dependent_exception, __get_dependent_exception_from_ue,
        __GXX_INIT_DEPENDENT_EXCEPTION_CLASS, __is_dependent_exception,
        __gxx_dependent_exception_class, __get_object_from_ue,
        __get_object_from_ambiguous_exception): Add.
        (__GXX_INIT_EXCEPTION_CLASS, __gxx_exception_class): Rename.
        (__is_gxx_exception_class): Handle dependent exceptions.
        * libsupc++/eh_arm.cc (__cxa_type_match): Likewise.
        * libsupc++/eh_call.cc (__cxa_call_unexpected): Likewise.
        * libsupc++/eh_personality.cc (__gxx_personality_*): Likewise.
        * libsupc++/eh_type.cc (__cxa_current_exception_type): Likewise.
        * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception,
        __cxa_free_dependent_exception): Add.
        * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Handle reference
        counting.
        * libsupc++/exception: Conditionally include exception_ptr.h.
        * libsupc++/Makefile.am: Register new files.
        * libsupc++/Makefile.in: Regenerate.
        * config/abi/pre/gnu.ver: Add new symbols.
        * testsuite/18_support/exception_ptr/current_exception.cc: Test the
        core functionality of current_exception().
        * testsuite/18_support/exception_ptr/rethrow_exception.cc: Test the
        core functionality of rethrow_exception().
        * testsuite/18_support/exception_ptr/lifespan.cc: Test the life span of
        exception objects during exception propagation.

From-SVN: r139509
2008-08-23 11:28:30 +00:00
Paolo Carlini
9b410dd0ec 2008-08-22 Paolo Carlini <paolo.carlini@oracle.com>
Revert again the N2179 patch.

From-SVN: r139497
2008-08-22 18:59:41 +00:00
Paolo Carlini
6d419a6ef3 Re-instate last patch...
2008-08-13  Paolo Carlini  <paolo.carlini@oracle.com>

	Re-instate last patch, amended to use __exchange_and_add_dispatch
	and __atomic_add_dispatch in eh_ptr.cc and eh_throw.cc.

From-SVN: r139091
2008-08-14 01:17:09 +00:00
Paolo Carlini
8d019b6593 2008-08-13 Paolo Carlini <paolo.carlini@oracle.com>
Revert the last patch.

From-SVN: r139075
2008-08-13 20:10:42 +00:00
Paolo Carlini
ec001bc928 2008-08-13 Paolo Carlini <paolo.carlini@oracle.com>
Revert the last patch.

From-SVN: r139074
2008-08-13 20:08:55 +00:00
Sebastian Redl
0292e6d2bb Add exception propagation support as per N2179.
2008-08-13  Sebastian Redl <sebastian.redl@getdesigned.at>

	Add exception propagation support as per N2179.
        * libsupc++/exception_ptr.h (exception_ptr, current_exception,
        copy_exception, rethrow_exception): New file, implement exception
	propagation.
        * libsupc++/eh_ptr.cc (exception_ptr, current_exception,
        rethrow_exception, __gxx_dependent_exception_cleanup): Likewise.
        * libsupc++/unwind-cxx.h (__cxa_exception): Add reference count.
	(__cxa_dependent_exception, __cxa_allocate_dependent_exception,
        __cxa_free_dependent_exception, __get_dependent_exception_from_ue,
        __GXX_INIT_DEPENDENT_EXCEPTION_CLASS, __is_dependent_exception,
        __gxx_dependent_exception_class, __get_object_from_ue,
        __get_object_from_ambiguous_exception): Add.
        (__GXX_INIT_EXCEPTION_CLASS, __gxx_exception_class): Rename.
        (__is_gxx_exception_class): Handle dependent exceptions.
        * libsupc++/eh_arm.cc (__cxa_type_match): Likewise.
        * libsupc++/eh_call.cc (__cxa_call_unexpected): Likewise.
        * libsupc++/eh_personality.cc (__gxx_personality_*): Likewise.
        * libsupc++/eh_type.cc (__cxa_current_exception_type): Likewise.
        * libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception,
        __cxa_free_dependent_exception): Add.
        * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Handle reference
        counting.
        * libsupc++/exception: Conditionally include exception_ptr.h.
        * libsupc++/Makefile.am: Register new files.
        * libsupc++/Makefile.in: Regenerate.
        * config/abi/pre/gnu.ver: Add new symbols.
        * testsuite/18_support/exception_ptr/current_exception.cc: Test the
        core functionality of current_exception().
        * testsuite/18_support/exception_ptr/rethrow_exception.cc: Test the
        core functionality of rethrow_exception().
        * testsuite/18_support/exception_ptr/lifespan.cc: Test the life span of
        exception objects during exception propagation.

From-SVN: r139064
2008-08-13 18:14:51 +00:00