111
|
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:
|
131
|
10 virtual ~C(); // { dg-message "overridden" }
|
111
|
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 {
|
131
|
23 virtual ~F(); // { dg-message "overridden" }
|
111
|
24 };
|
|
25
|
|
26 struct G: E, F { }; // { dg-error "deleted" }
|