1 // Negative test for defaulted/deleted fns.
2 // { dg-do compile { target c++11 } }
4 void f(); // { dg-message "previous" }
5 void f() = delete; // { dg-error "deleted" }
9 A() { } // { dg-message "previous" }
10 void f() = default; // { dg-error "default" }
13 A::A() = default; // { dg-error "redefinition" }
15 void g() {} // { dg-message "previous" }
16 void g() = delete; // { dg-error "redefinition" }
18 struct B // { dg-message "user-provided default constructor" }
21 B() = default; // { dg-message "not user-provided" }
24 const B b; // { dg-error "uninitialized 'const" }
28 virtual void f() = delete; // { dg-message "overridden" }
33 virtual void f(); // { dg-error "non-deleted function" }
38 const B b; // { dg-message "should be initialized" }
39 E() { } // { dg-error "uninitialized" }
45 F(const F&) = delete; // { dg-message "declared" }
53 // ctor defaulted after class defn is not trivial
58 G g; // { dg-error "union member.*non-trivial" }
64 F f2(f); // { dg-error "use" }
65 const B* b = new const B; // { dg-error "uninitialized const" }
66 U u; // { dg-error "deleted" }
69 // { dg-prune-output "implicitly deleted because" }