Commit bc2da0fc by Jonathan Wakely Committed by Jonathan Wakely

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
parent 75c3de1e
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
* doc/xml/manual/status_cxx2011.xml: Update. * doc/xml/manual/status_cxx2011.xml: Update.
* doc/html/manual/status.html: Regenerate. * 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> 2014-10-09 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/60132 PR libstdc++/60132
......
...@@ -163,7 +163,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -163,7 +163,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
private: private:
_Tp _M_i; _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, static_assert(sizeof(_Tp) > 0,
"Incomplete or zero-sized types are not supported"); "Incomplete or zero-sized types are not supported");
......
...@@ -27,4 +27,4 @@ struct X { ...@@ -27,4 +27,4 @@ struct X {
char stuff[0]; // GNU extension, type has zero size 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 }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment