PR c++/85765 - SFINAE and non-type default template arg.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / pr42844-2.C
blobff23966051c72aef774cb4923f8c207c1d914ea0
1 // PR c++/42844
2 // { dg-do compile { target c++11 } }
4 struct A // { dg-message "user-provided default constructor" }
6     int i;
7     A() = default; // { dg-message "not user-provided" }
8 };
10 struct Base
12     Base() {}
15 struct Derived : Base // { dg-message "user-provided default constructor" }
17     int i;
18     Derived() = default; // { dg-message "not user-provided" }
21 struct Derived2 : Base // { dg-message "user-provided default constructor" }
23     int i;
24     Derived2() = default; // { dg-message "not user-provided" }
25     Derived2( Derived2 const& ) = default;
28 struct Derived3 : Base // { dg-message "user-provided default constructor" }
30     int i;
31     Derived3( Derived3 const& ) = default;
32     Derived3() = default; // { dg-message "not user-provided" }
35 void f()
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" }