1 // Negative test for C++11 unrestricted unions 2 // { dg-do compile { target c++11 } } 3 // { dg-prune-output "implicitly deleted because" } 4 5 struct A 6 { 7 A(); 8 A(const A&); 9 ~A(); 10 }; 11 12 union B 13 { 14 A a; // { dg-error "union member" } 15 }; 16 17 B b; // { dg-error "B::B\\(\\)" "B::B" } 18 B b2(b); // { dg-error "B::B\\(const B&\\)" "B::B" } 19 20 struct C 21 { 22 union 23 { 24 A a; // { dg-error "union member" } 25 }; 26 }; 27 28 C c; // { dg-error "C::C\\(\\)" "C::C" } 29 C c2(c); // { dg-error "C::C\\(const C&\\)" "C::C" } 30 31 // { dg-error "B::~B" "B::~B" { target *-*-* } 17 } 32 // { dg-error "B::~B" "B::~B" { target *-*-* } 18 } 33 // { dg-error "C::~C" "C::~C" { target *-*-* } 28 } 34 // { dg-error "C::~C" "C::~C" { target *-*-* } 29 } 35