blob: 5ace0348ededa95153c40bee2a55c72c70af3624 [file] [log] [blame]
From cf17b2b404eed4778664b69d20e1943b619bfd38 Mon Sep 17 00:00:00 2001
From: redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 4 Jan 2017 10:54:59 +0000
Subject: [PATCH 1/1] 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244051 138bc75d-0d04-0410-961f-82ee72b054a4
This is a backport of the upstream commit.
Signed-off-by: James Feist <james.feist@linux.intel.com>
---
libstdc++-v3/ChangeLog | 38 +++++++++-
libstdc++-v3/acinclude.m4 | 37 ++++++++++
libstdc++-v3/config.h.in | 3 +
libstdc++-v3/config/abi/pre/gnu.ver | 10 +++
libstdc++-v3/configure | 49 +++++++++++++
libstdc++-v3/configure.ac | 3 +
libstdc++-v3/include/std/future | 4 +-
libstdc++-v3/libsupc++/eh_atomics.h | 84 ++++++++++++++++++++++
libstdc++-v3/libsupc++/eh_ptr.cc | 14 ++--
libstdc++-v3/libsupc++/eh_throw.cc | 7 +-
libstdc++-v3/libsupc++/eh_tm.cc | 5 +-
libstdc++-v3/libsupc++/exception | 3 +-
libstdc++-v3/libsupc++/exception_ptr.h | 4 --
libstdc++-v3/libsupc++/guard.cc | 1 +
libstdc++-v3/libsupc++/nested_exception.cc | 2 -
libstdc++-v3/libsupc++/nested_exception.h | 4 --
libstdc++-v3/src/c++11/future.cc | 3 +-
.../testsuite/18_support/exception_ptr/40296.cc | 1 -
.../18_support/exception_ptr/60612-terminate.cc | 1 -
.../18_support/exception_ptr/60612-unexpected.cc | 1 -
.../testsuite/18_support/exception_ptr/62258.cc | 1 -
.../testsuite/18_support/exception_ptr/64241.cc | 1 -
.../18_support/exception_ptr/current_exception.cc | 1 -
.../testsuite/18_support/exception_ptr/lifespan.cc | 1 -
.../18_support/exception_ptr/make_exception_ptr.cc | 1 -
.../testsuite/18_support/exception_ptr/move.cc | 1 -
.../18_support/exception_ptr/requirements.cc | 1 -
.../18_support/exception_ptr/requirements_neg.cc | 1 -
.../18_support/exception_ptr/rethrow_exception.cc | 1 -
.../testsuite/18_support/nested_exception/51438.cc | 1 -
.../testsuite/18_support/nested_exception/62154.cc | 1 -
.../testsuite/18_support/nested_exception/68139.cc | 1 -
.../testsuite/18_support/nested_exception/cons.cc | 1 -
.../18_support/nested_exception/nested_ptr.cc | 1 -
.../nested_exception/rethrow_if_nested.cc | 1 -
.../18_support/nested_exception/rethrow_nested.cc | 1 -
.../nested_exception/throw_with_nested.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/42819.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/49668.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/54297.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/any.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/async.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/except.cc | 1 -
.../testsuite/30_threads/async/forced_unwind.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/launch.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/lwg2021.cc | 1 -
libstdc++-v3/testsuite/30_threads/async/sync.cc | 1 -
.../testsuite/30_threads/future/cons/assign_neg.cc | 1 -
.../testsuite/30_threads/future/cons/constexpr.cc | 1 -
.../testsuite/30_threads/future/cons/copy_neg.cc | 1 -
.../testsuite/30_threads/future/cons/default.cc | 1 -
.../testsuite/30_threads/future/cons/move.cc | 1 -
.../30_threads/future/cons/move_assign.cc | 1 -
.../testsuite/30_threads/future/members/45133.cc | 1 -
.../testsuite/30_threads/future/members/get.cc | 1 -
.../testsuite/30_threads/future/members/get2.cc | 1 -
.../testsuite/30_threads/future/members/share.cc | 1 -
.../testsuite/30_threads/future/members/valid.cc | 1 -
.../testsuite/30_threads/future/members/wait.cc | 1 -
.../30_threads/future/members/wait_for.cc | 1 -
.../30_threads/future/members/wait_until.cc | 1 -
.../future/requirements/explicit_instantiation.cc | 1 -
.../30_threads/headers/future/types_std_c++0x.cc | 1 -
.../testsuite/30_threads/packaged_task/49668.cc | 1 -
.../testsuite/30_threads/packaged_task/60564.cc | 1 -
.../testsuite/30_threads/packaged_task/cons/1.cc | 1 -
.../testsuite/30_threads/packaged_task/cons/2.cc | 1 -
.../testsuite/30_threads/packaged_task/cons/3.cc | 1 -
.../30_threads/packaged_task/cons/56492.cc | 1 -
.../30_threads/packaged_task/cons/alloc.cc | 1 -
.../30_threads/packaged_task/cons/alloc2.cc | 1 -
.../30_threads/packaged_task/cons/alloc_min.cc | 1 -
.../30_threads/packaged_task/cons/assign_neg.cc | 1 -
.../30_threads/packaged_task/cons/copy_neg.cc | 1 -
.../30_threads/packaged_task/cons/move.cc | 1 -
.../30_threads/packaged_task/cons/move_assign.cc | 1 -
.../30_threads/packaged_task/forced_unwind.cc | 1 -
.../packaged_task/members/at_thread_exit.cc | 1 -
.../30_threads/packaged_task/members/get_future.cc | 1 -
.../packaged_task/members/get_future2.cc | 1 -
.../30_threads/packaged_task/members/invoke.cc | 1 -
.../30_threads/packaged_task/members/invoke2.cc | 1 -
.../30_threads/packaged_task/members/invoke3.cc | 1 -
.../30_threads/packaged_task/members/invoke4.cc | 1 -
.../30_threads/packaged_task/members/invoke5.cc | 1 -
.../30_threads/packaged_task/members/reset.cc | 1 -
.../30_threads/packaged_task/members/reset2.cc | 1 -
.../30_threads/packaged_task/members/swap.cc | 1 -
.../30_threads/packaged_task/members/valid.cc | 1 -
.../requirements/explicit_instantiation.cc | 1 -
.../30_threads/packaged_task/uses_allocator.cc | 1 -
libstdc++-v3/testsuite/30_threads/promise/60966.cc | 1 -
libstdc++-v3/testsuite/30_threads/promise/69106.cc | 1 -
.../testsuite/30_threads/promise/cons/1.cc | 1 -
.../testsuite/30_threads/promise/cons/alloc.cc | 1 -
.../testsuite/30_threads/promise/cons/alloc2.cc | 1 -
.../testsuite/30_threads/promise/cons/alloc_min.cc | 1 -
.../30_threads/promise/cons/assign_neg.cc | 1 -
.../testsuite/30_threads/promise/cons/copy_neg.cc | 1 -
.../testsuite/30_threads/promise/cons/move.cc | 1 -
.../30_threads/promise/cons/move_assign.cc | 1 -
.../30_threads/promise/members/at_thread_exit.cc | 1 -
.../30_threads/promise/members/get_future.cc | 1 -
.../30_threads/promise/members/get_future2.cc | 1 -
.../30_threads/promise/members/set_exception.cc | 1 -
.../30_threads/promise/members/set_exception2.cc | 1 -
.../30_threads/promise/members/set_value.cc | 1 -
.../30_threads/promise/members/set_value2.cc | 1 -
.../30_threads/promise/members/set_value3.cc | 1 -
.../testsuite/30_threads/promise/members/swap.cc | 1 -
.../promise/requirements/explicit_instantiation.cc | 1 -
.../testsuite/30_threads/promise/uses_allocator.cc | 1 -
.../30_threads/shared_future/cons/assign.cc | 1 -
.../30_threads/shared_future/cons/constexpr.cc | 1 -
.../30_threads/shared_future/cons/copy.cc | 1 -
.../30_threads/shared_future/cons/default.cc | 1 -
.../30_threads/shared_future/cons/move.cc | 1 -
.../30_threads/shared_future/cons/move_assign.cc | 1 -
.../30_threads/shared_future/members/45133.cc | 1 -
.../30_threads/shared_future/members/get.cc | 1 -
.../30_threads/shared_future/members/get2.cc | 1 -
.../30_threads/shared_future/members/valid.cc | 1 -
.../30_threads/shared_future/members/wait.cc | 1 -
.../30_threads/shared_future/members/wait_for.cc | 1 -
.../30_threads/shared_future/members/wait_until.cc | 1 -
.../requirements/explicit_instantiation.cc | 1 -
126 files changed, 236 insertions(+), 144 deletions(-)
create mode 100644 libstdc++-v3/libsupc++/eh_atomics.h
Index: gcc-6.3.0/libstdc++-v3/acinclude.m4
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/acinclude.m4
+++ gcc-6.3.0/libstdc++-v3/acinclude.m4
@@ -4517,6 +4517,43 @@ AC_DEFUN([GLIBCXX_CHECK_SIZE_T_MANGLING]
[Define to the letter to which size_t is mangled.])
])
+dnl
+dnl Determine whether std::exception_ptr symbols should be exported with
+dnl the symbol versions from GCC 4.6.0 or GCC 7.1.0, depending on which
+dnl release first added support for std::exception_ptr. Originally it was
+dnl only supported for targets with always-lock-free atomics for int, but
+dnl since GCC 7.1 it is supported for all targets.
+dnl
+AC_DEFUN([GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER], [
+ if test $enable_symvers != no; then
+ AC_MSG_CHECKING([for first version to support std::exception_ptr])
+ case ${target} in
+ aarch64-*-* | alpha-*-* | hppa*-*-* | i?86-*-* | x86_64-*-* | \
+ m68k-*-* | powerpc*-*-* | s390*-*-* | *-*-solaris* )
+ ac_exception_ptr_since_gcc46=yes
+ ;;
+ *)
+ # If the value of this macro changes then we will need to hardcode
+ # yes/no here for additional targets based on the original value.
+ AC_TRY_COMPILE([], [
+ #if __GCC_ATOMIC_INT_LOCK_FREE <= 1
+ # error atomic int not always lock free
+ #endif
+ ],
+ [ac_exception_ptr_since_gcc46=yes],
+ [ac_exception_ptr_since_gcc46=no])
+ ;;
+ esac
+ if test x"$ac_exception_ptr_since_gcc46" = x"yes" ; then
+ AC_DEFINE(HAVE_EXCEPTION_PTR_SINCE_GCC46, 1,
+ [Define to 1 if GCC 4.6 supported std::exception_ptr for the target])
+ AC_MSG_RESULT([4.6.0])
+ else
+ AC_MSG_RESULT([7.1.0])
+ fi
+ fi
+])
+
# Macros from the top-level gcc directory.
m4_include([../config/gc++filt.m4])
m4_include([../config/tls.m4])
Index: gcc-6.3.0/libstdc++-v3/config.h.in
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/config.h.in
+++ gcc-6.3.0/libstdc++-v3/config.h.in
@@ -120,6 +120,9 @@
/* Define if EWOULDBLOCK exists. */
#undef HAVE_EWOULDBLOCK
+/* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */
+#undef HAVE_EXCEPTION_PTR_SINCE_GCC46
+
/* Define to 1 if you have the <execinfo.h> header file. */
#undef HAVE_EXECINFO_H
Index: gcc-6.3.0/libstdc++-v3/config/abi/pre/gnu.ver
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/config/abi/pre/gnu.ver
+++ gcc-6.3.0/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1490,6 +1490,9 @@ GLIBCXX_3.4.15 {
_ZNSt14error_categoryC*;
_ZNSt14error_categoryD*;
+#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46
+ # std::future symbols are only present in this version when
+ # atomic operations on int are always lock-free.
_ZNSt13__future_base12_Result_baseC*;
_ZNSt13__future_base12_Result_baseD*;
_ZTINSt13__future_base12_Result_baseE;
@@ -1498,6 +1501,7 @@ GLIBCXX_3.4.15 {
_ZNSt13__future_base11_State_baseD*;
_ZTINSt13__future_base11_State_baseE;
_ZTVNSt13__future_base11_State_baseE;
+#endif
} GLIBCXX_3.4.14;
@@ -1674,8 +1678,10 @@ GLIBCXX_3.4.21 {
# std::notify_all_at_thread_exit
_ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE;
+#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46
# std::__future_base::_State_baseV2::_Make_ready::_M_set()
_ZNSt13__future_base13_State_baseV211_Make_ready6_M_setEv;
+#endif
# ABI-tagged std::basic_string
_ZNSt7__cxx1112basic_string*;
@@ -2040,6 +2046,7 @@ CXXABI_1.3.3 {
_ZTIPDi;
_ZTIPKDi;
+#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46
# exception_ptr
_ZNSt15__exception_ptr13exception_ptrC1Ev;
_ZNSt15__exception_ptr13exception_ptrC2Ev;
@@ -2059,6 +2066,7 @@ CXXABI_1.3.3 {
_ZSt17current_exceptionv;
_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE;
+#endif
} CXXABI_1.3.2;
@@ -2089,10 +2097,12 @@ CXXABI_1.3.5 {
# FNV hash.
_ZSt15_Fnv_hash_bytesPKv*;
+#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46
# std::nested_exception
_ZNSt16nested_exceptionD*;
_ZTISt16nested_exception;
_ZTVSt16nested_exception;
+#endif
} CXXABI_1.3.4;
Index: gcc-6.3.0/libstdc++-v3/configure
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/configure
+++ gcc-6.3.0/libstdc++-v3/configure
@@ -80655,6 +80655,55 @@ _ACEOF
+# Check which release added std::exception_ptr for the target
+
+ if test $enable_symvers != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for first version to support std::exception_ptr" >&5
+$as_echo_n "checking for first version to support std::exception_ptr... " >&6; }
+ case ${target} in
+ aarch64-*-* | alpha-*-* | hppa*-*-* | i?86-*-* | x86_64-*-* | \
+ m68k-*-* | powerpc*-*-* | s390*-*-* | *-*-solaris* )
+ ac_exception_ptr_since_gcc46=yes
+ ;;
+ *)
+ # If the value of this macro changes then we will need to hardcode
+ # yes/no here for additional targets based on the original value.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #if __GCC_ATOMIC_INT_LOCK_FREE <= 1
+ # error atomic int not always lock free
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_exception_ptr_since_gcc46=yes
+else
+ ac_exception_ptr_since_gcc46=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+ esac
+ if test x"$ac_exception_ptr_since_gcc46" = x"yes" ; then
+
+$as_echo "#define HAVE_EXCEPTION_PTR_SINCE_GCC46 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 4.6.0" >&5
+$as_echo "4.6.0" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 7.1.0" >&5
+$as_echo "7.1.0" >&6; }
+ fi
+ fi
+
+
# Define documentation rules conditionally.
# See if makeinfo has been installed and is modern enough
Index: gcc-6.3.0/libstdc++-v3/configure.ac
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/configure.ac
+++ gcc-6.3.0/libstdc++-v3/configure.ac
@@ -411,6 +411,9 @@ GLIBCXX_CHECK_FILESYSTEM_DEPS
# For Transactional Memory TS
GLIBCXX_CHECK_SIZE_T_MANGLING
+# Check which release added std::exception_ptr for the target
+GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER
+
# Define documentation rules conditionally.
# See if makeinfo has been installed and is modern enough
Index: gcc-6.3.0/libstdc++-v3/include/std/future
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/include/std/future
+++ gcc-6.3.0/libstdc++-v3/include/std/future
@@ -182,8 +182,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
future<__async_result_of<_Fn, _Args...>>
async(_Fn&& __fn, _Args&&... __args);
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \
- && (ATOMIC_INT_LOCK_FREE > 1)
+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
/// Base class and enclosing scope.
struct __future_base
@@ -1745,7 +1744,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif // _GLIBCXX_ASYNC_ABI_COMPAT
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
- // && ATOMIC_INT_LOCK_FREE
// @} group futures
_GLIBCXX_END_NAMESPACE_VERSION
Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_atomics.h
===================================================================
--- /dev/null
+++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_atomics.h
@@ -0,0 +1,84 @@
+// Exception Handling support header for -*- C++ -*-
+
+// Copyright (C) 2016 Free Software Foundation, Inc.
+//
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// GCC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file eh_atomics.h
+ * This is an internal header file, included by library source files.
+ * Do not attempt to use it directly.
+ */
+
+#ifndef _EH_ATOMICS_H
+#define _EH_ATOMICS_H 1
+
+#include <bits/c++config.h>
+#include <bits/atomic_word.h>
+#include <bits/atomic_lockfree_defines.h>
+#if ATOMIC_INT_LOCK_FREE <= 1
+# include <ext/atomicity.h>
+#endif
+
+#pragma GCC visibility push(default)
+extern "C++" {
+namespace __gnu_cxx
+{
+ void
+ __eh_atomic_inc (_Atomic_word* __count) __attribute__((always_inline));
+
+ bool
+ __eh_atomic_dec (_Atomic_word* __count) __attribute__((always_inline));
+
+ // Increments the count.
+ inline void
+ __eh_atomic_inc (_Atomic_word* __count)
+ {
+#if ATOMIC_INT_LOCK_FREE > 1
+ __atomic_add_fetch (__count, 1, __ATOMIC_ACQ_REL);
+#else
+ _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE (__count);
+ __gnu_cxx::__atomic_add_dispatch (__count, 1);
+ _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER (__count);
+#endif
+ }
+
+ // Decrements the count and returns true if it reached zero.
+ inline bool
+ __eh_atomic_dec (_Atomic_word* __count)
+ {
+#if ATOMIC_INT_LOCK_FREE > 1
+ return __atomic_sub_fetch (__count, 1, __ATOMIC_ACQ_REL) == 0;
+#else
+ _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE (__count);
+ if (__gnu_cxx::__exchange_and_add_dispatch (__count, -1) == 1)
+ {
+ _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER (__count);
+ return true;
+ }
+ return false;
+#endif
+ }
+} // namespace __gnu_cxx
+}
+#pragma GCC visibility pop
+
+#endif // _EH_ATOMICS_H
Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_ptr.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/eh_ptr.cc
+++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_ptr.cc
@@ -23,9 +23,7 @@
// <http://www.gnu.org/licenses/>.
#include <bits/c++config.h>
-#include <bits/atomic_lockfree_defines.h>
-
-#if ATOMIC_INT_LOCK_FREE > 1
+#include "eh_atomics.h"
#define _GLIBCXX_EH_PTR_COMPAT
@@ -103,7 +101,7 @@ std::__exception_ptr::exception_ptr::_M_
{
__cxa_refcounted_exception *eh =
__get_refcounted_exception_header_from_obj (_M_exception_object);
- __atomic_add_fetch (&eh->referenceCount, 1, __ATOMIC_ACQ_REL);
+ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount);
}
}
@@ -115,7 +113,7 @@ std::__exception_ptr::exception_ptr::_M_
{
__cxa_refcounted_exception *eh =
__get_refcounted_exception_header_from_obj (_M_exception_object);
- if (__atomic_sub_fetch (&eh->referenceCount, 1, __ATOMIC_ACQ_REL) == 0)
+ if (__gnu_cxx::__eh_atomic_dec (&eh->referenceCount))
{
if (eh->exc.exceptionDestructor)
eh->exc.exceptionDestructor (_M_exception_object);
@@ -219,7 +217,7 @@ __gxx_dependent_exception_cleanup(_Unwin
__cxa_free_dependent_exception (dep);
- if (__atomic_sub_fetch (&header->referenceCount, 1, __ATOMIC_ACQ_REL) == 0)
+ if (__gnu_cxx::__eh_atomic_dec (&header->referenceCount))
{
if (header->exc.exceptionDestructor)
header->exc.exceptionDestructor (header + 1);
@@ -238,7 +236,7 @@ std::rethrow_exception(std::exception_pt
__cxa_dependent_exception *dep = __cxa_allocate_dependent_exception ();
dep->primaryException = obj;
- __atomic_add_fetch (&eh->referenceCount, 1, __ATOMIC_ACQ_REL);
+ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount);
dep->unexpectedHandler = get_unexpected ();
dep->terminateHandler = get_terminate ();
@@ -260,5 +258,3 @@ std::rethrow_exception(std::exception_pt
}
#undef _GLIBCXX_EH_PTR_COMPAT
-
-#endif
Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_throw.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/eh_throw.cc
+++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_throw.cc
@@ -24,6 +24,7 @@
#include <bits/c++config.h>
#include "unwind-cxx.h"
+#include "eh_atomics.h"
using namespace __cxxabiv1;
@@ -42,17 +43,13 @@ __gxx_exception_cleanup (_Unwind_Reason_
if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
__terminate (header->exc.terminateHandler);
-#if ATOMIC_INT_LOCK_FREE > 1
- if (__atomic_sub_fetch (&header->referenceCount, 1, __ATOMIC_ACQ_REL) == 0)
+ if (__gnu_cxx::__eh_atomic_dec (&header->referenceCount))
{
-#endif
if (header->exc.exceptionDestructor)
header->exc.exceptionDestructor (header + 1);
__cxa_free_exception (header + 1);
-#if ATOMIC_INT_LOCK_FREE > 1
}
-#endif
}
Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_tm.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/eh_tm.cc
+++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_tm.cc
@@ -24,6 +24,7 @@
#include <cstdlib>
#include "unwind-cxx.h"
+#include "eh_atomics.h"
using namespace __cxxabiv1;
@@ -45,9 +46,7 @@ free_any_cxa_exception (_Unwind_Exceptio
__cxa_free_dependent_exception (dep);
}
-#if __GCC_ATOMIC_INT_LOCK_FREE > 1
- if (__atomic_sub_fetch (&h->referenceCount, 1, __ATOMIC_ACQ_REL) == 0)
-#endif
+ if (__gnu_cxx::__eh_atomic_dec (&h->referenceCount))
__cxa_free_exception (h + 1);
}
Index: gcc-6.3.0/libstdc++-v3/libsupc++/exception
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/exception
+++ gcc-6.3.0/libstdc++-v3/libsupc++/exception
@@ -35,7 +35,6 @@
#pragma GCC visibility push(default)
#include <bits/c++config.h>
-#include <bits/atomic_lockfree_defines.h>
extern "C++" {
@@ -166,7 +165,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
#pragma GCC visibility pop
-#if (__cplusplus >= 201103L) && (ATOMIC_INT_LOCK_FREE > 1)
+#if (__cplusplus >= 201103L)
#include <bits/exception_ptr.h>
#include <bits/nested_exception.h>
#endif
Index: gcc-6.3.0/libstdc++-v3/libsupc++/exception_ptr.h
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/exception_ptr.h
+++ gcc-6.3.0/libstdc++-v3/libsupc++/exception_ptr.h
@@ -36,10 +36,6 @@
#include <bits/c++config.h>
#include <bits/exception_defines.h>
-#if ATOMIC_INT_LOCK_FREE < 2
-# error This platform does not support exception propagation.
-#endif
-
extern "C++" {
namespace std
Index: gcc-6.3.0/libstdc++-v3/libsupc++/guard.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/guard.cc
+++ gcc-6.3.0/libstdc++-v3/libsupc++/guard.cc
@@ -30,6 +30,7 @@
#include <new>
#include <ext/atomicity.h>
#include <ext/concurrence.h>
+#include <bits/atomic_lockfree_defines.h>
#if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
&& (ATOMIC_INT_LOCK_FREE > 1) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
# include <climits>
Index: gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/nested_exception.cc
+++ gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.cc
@@ -25,7 +25,5 @@
namespace std
{
-#if ATOMIC_INT_LOCK_FREE > 1
nested_exception::~nested_exception() noexcept = default;
-#endif
} // namespace std
Index: gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.h
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/nested_exception.h
+++ gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.h
@@ -39,10 +39,6 @@
#include <bits/c++config.h>
#include <bits/move.h>
-#if ATOMIC_INT_LOCK_FREE < 2
-# error This platform does not support exception propagation.
-#endif
-
extern "C++" {
namespace std
Index: gcc-6.3.0/libstdc++-v3/src/c++11/future.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/src/c++11/future.cc
+++ gcc-6.3.0/libstdc++-v3/src/c++11/future.cc
@@ -78,8 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const char*
future_error::what() const noexcept { return logic_error::what(); }
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \
- && (ATOMIC_INT_LOCK_FREE > 1)
+#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
__future_base::_Result_base::_Result_base() = default;
__future_base::_Result_base::~_Result_base() = default;
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
@@ -1,6 +1,5 @@
// { dg-do compile }
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2015-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
@@ -16,7 +16,6 @@
// <http://www.gnu.org/licenses/>.
// { dg-options "-std=gnu++11 -fno-exceptions -O0" }
-// { dg-require-atomic-builtins "" }
#include <exception>
#include <testsuite_hooks.h>
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// 2008-05-25 Sebastian Redl <sebastian.redl@getdesigned.at>
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// 2008-05-25 Sebastian Redl <sebastian.redl@getdesigned.at>
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
@@ -1,6 +1,5 @@
// { dg-do compile }
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// 2008-05-25 Sebastian Redl <sebastian.redl@getdesigned.at>
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
@@ -1,6 +1,5 @@
// { dg-do compile }
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
@@ -1,6 +1,5 @@
// { dg-do compile }
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2015-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=gnu++11" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/42819.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/42819.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/42819.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/49668.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/49668.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/49668.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/54297.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/54297.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/54297.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// { dg-require-sleep "" }
// Copyright (C) 2012-2016 Free Software Foundation, Inc.
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/any.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/any.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/any.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/async.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/async.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/async.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/except.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/except.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/except.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
@@ -2,7 +2,6 @@
// { dg-options " -std=gnu++11 -pthread" { target *-*-linux* *-*-gnu* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/launch.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/launch.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/launch.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
@@ -21,7 +21,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// LWG 2021. Further incorrect usages of result_of
// Arguments to result_of should use decay.
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/sync.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/sync.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/sync.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11 -fno-inline -g0" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// { dg-final { scan-assembler-not "_ZNSt6futureIvEC2Ev" } }
// { dg-final { scan-assembler-not "_ZNSt6futureIiEC2Ev" } }
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/default.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/default.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/default.cc
@@ -1,7 +1,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/move.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
@@ -1,7 +1,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/45133.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/45133.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/45133.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/get.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/get2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/share.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/share.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/share.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/valid.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/valid.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/valid.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/wait.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2013-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
@@ -2,7 +2,6 @@
// { dg-options " -std=gnu++11 -pthread" { target *-*-linux* *-*-gnu* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/60966.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/60966.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/60966.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/69106.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/69106.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/69106.cc
@@ -19,7 +19,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
#include <future>
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2014-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2011-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
@@ -1,7 +1,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11 -fno-inline -g0" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// { dg-final { scan-assembler-not "_ZNSt13shared_futureIvEC2Ev" } }
// { dg-final { scan-assembler-not "_ZNSt13shared_futureIiEC2Ev" } }
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
@@ -1,7 +1,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
@@ -1,7 +1,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2010-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
@@ -4,7 +4,6 @@
// { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
+++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
@@ -2,7 +2,6 @@
// { dg-options "-std=gnu++11" }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// { dg-require-atomic-builtins "" }
// Copyright (C) 2009-2016 Free Software Foundation, Inc.
//
Index: gcc-6.3.0/libstdc++-v3/ChangeLog
===================================================================
--- gcc-6.3.0.orig/libstdc++-v3/ChangeLog
+++ gcc-6.3.0/libstdc++-v3/ChangeLog
@@ -2,6 +2,43 @@
* GCC 6.3.0 released.
+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.
+
2016-12-12 Jonathan Wakely <jwakely@redhat.com>
Backport from mainline