* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / defaulted2.C
blob45b09c178120e39cbd39d255dec79b0d1fd7785c
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" }
7 struct A
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" }
20   int i;
21   B() = default;                // { dg-message "not user-provided" }
24 const B b;                      // { dg-error "uninitialized const" }
26 struct C
28   virtual void f() = delete;    // { dg-message "overridden" }
31 struct D: public C
33   virtual void f();             // { dg-error "non-deleted function" }
36 struct E
38   const B b;                    // { dg-message "should be initialized" }
39   E() { }                       // { dg-error "uninitialized" }
42 struct F
44   F() = default;
45   F(const F&) = delete;         // { dg-message "declared" }
48 struct G
50   G();
53 // ctor defaulted after class defn is not trivial
54 G::G() = default;
56 union U
58   G g;                          // { dg-error "union member.*non-trivial" }
61 int main()
63   F f;
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" }