// PR c++/66583 | |
// { dg-do run { target c++11 } } | |
template <class T> | |
T&& move(T& t) { return static_cast<T&&>(t); } | |
struct A { | |
A() { }; | |
A(const A&) { } | |
}; | |
struct B { | |
union { | |
int m_1 = 0; | |
int m_2; | |
}; | |
A dummy; | |
}; | |
int main() | |
{ | |
B b; | |
b.m_1 = 1; | |
B c = move(b); | |
if (c.m_1 != 1) | |
__builtin_abort(); | |
} |