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
This commit is contained in:
Jonathan Wakely 2014-10-09 19:17:23 +01:00 committed by Jonathan Wakely
parent 75c3de1e76
commit bc2da0fc04
3 changed files with 7 additions and 2 deletions

View 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

View 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");

View 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 }