diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2014-10-09 19:17:23 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2014-10-09 19:17:23 +0100 |
commit | bc2da0fc047bad6c0a4e6ea1468d95e590844450 (patch) | |
tree | e561e58677a5953802a34f55c7e557c3c5af318c | |
parent | 75c3de1e76de31d4f9b7b9fbd14899b05ebeb460 (diff) | |
download | gcc-bc2da0fc047bad6c0a4e6ea1468d95e590844450.zip gcc-bc2da0fc047bad6c0a4e6ea1468d95e590844450.tar.gz gcc-bc2da0fc047bad6c0a4e6ea1468d95e590844450.tar.bz2 |
re PR libstdc++/63322 (std::atomic<T> where T is not trivially copyable should be disabled.)
PR libstdc++/63322
* include/std/atomic (atomic): Add assertion for trivially copyable.
* testsuite/29_atomics/atomic/60695.cc: Adjust line number.
From-SVN: r216046
-rw-r--r-- | libstdc++-v3/ChangeLog | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/std/atomic | 3 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/29_atomics/atomic/60695.cc | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index cdf1fc6..6b4444a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -3,6 +3,10 @@ * doc/xml/manual/status_cxx2011.xml: Update. * doc/html/manual/status.html: Regenerate. + PR libstdc++/63322 + * include/std/atomic (atomic): Add assertion for trivially copyable. + * testsuite/29_atomics/atomic/60695.cc: Adjust line number. + 2014-10-09 Ville Voutilainen <ville.voutilainen@gmail.com> PR libstdc++/60132 diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic index be7d0be..85dc252 100644 --- a/libstdc++-v3/include/std/atomic +++ b/libstdc++-v3/include/std/atomic @@ -163,7 +163,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION private: _Tp _M_i; - // TODO: static_assert(is_trivially_copyable<_Tp>::value, ""); + static_assert(__is_trivially_copyable(_Tp), + "std::atomic requires a trivially copyable type"); static_assert(sizeof(_Tp) > 0, "Incomplete or zero-sized types are not supported"); diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/60695.cc b/libstdc++-v3/testsuite/29_atomics/atomic/60695.cc index 27c0c8f..10c5e3a 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/60695.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/60695.cc @@ -27,4 +27,4 @@ struct X { char stuff[0]; // GNU extension, type has zero size }; -std::atomic<X> a; // { dg-error "not supported" "" { target *-*-* } 168 } +std::atomic<X> a; // { dg-error "not supported" "" { target *-*-* } 169 } |