1 // PR c++/42844
2 // { dg-do compile { target c++11 } }
3
4 struct A // { dg-message "user-provided default constructor" }
5 {
6 int i;
7 A() = default; // { dg-message "not user-provided" }
8 };
9
10 struct Base
11 {
BaseBase12 Base() {}
13 };
14
15 struct Derived : Base // { dg-message "user-provided default constructor" }
16 {
17 int i;
18 Derived() = default; // { dg-message "not user-provided" }
19 };
20
21 struct Derived2 : Base // { dg-message "user-provided default constructor" }
22 {
23 int i;
24 Derived2() = default; // { dg-message "not user-provided" }
25 Derived2( Derived2 const& ) = default;
26 };
27
28 struct Derived3 : Base // { dg-message "user-provided default constructor" }
29 {
30 int i;
31 Derived3( Derived3 const& ) = default;
32 Derived3() = default; // { dg-message "not user-provided" }
33 };
34
f()35 void f()
36 {
37 const A a; // { dg-error "uninitialized 'const" }
38 const Derived d; // { dg-error "uninitialized 'const" }
39 const Derived2 d2; // { dg-error "uninitialized 'const" }
40 const Derived3 d3; // { dg-error "uninitialized 'const" }
41 }
42