1 // Test for implicitly deleted destructors. 2 // { dg-do compile { target c++11 } } 3 // { dg-prune-output "default definition would be ill-formed" } 4 // { dg-prune-output "within this context" } 5 6 class C 7 { 8 void operator delete (void *); // { dg-message "private" } 9 public: 10 virtual ~C(); // { dg-message "overridden" } 11 }; 12 13 struct D: C { }; // { dg-error "deleted" } 14 D d; // { dg-error "deleted" } 15 16 struct E 17 { 18 ~E() = delete; // { dg-message "declared here" } 19 }; 20 21 struct F 22 { 23 virtual ~F(); // { dg-message "overridden" } 24 }; 25 26 struct G: E, F { }; // { dg-error "deleted" } 27