PR libstdc++/63322
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Oct 2014 18:17:23 +0000 (18:17 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Oct 2014 18:17:23 +0000 (18:17 +0000)
* include/std/atomic (atomic): Add assertion for trivially copyable.
* testsuite/29_atomics/atomic/60695.cc: Adjust line number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216046 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/atomic
libstdc++-v3/testsuite/29_atomics/atomic/60695.cc

index cdf1fc6..6b4444a 100644 (file)
@@ -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
index be7d0be..85dc252 100644 (file)
@@ -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");
index 27c0c8f..10c5e3a 100644 (file)
@@ -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 }