1 // A constructor that might or might not be constexpr still makes
2 // its class literal.
3 // { dg-do compile { target c++11 } }
4 
5 template <class T>
6 struct B
7 {
BB8   constexpr B(T) { }
BB9   constexpr B() {}
10 };
11 
12 struct A
13 {
14   B<A> b;
15 };
16 
17 constexpr A a {};
18 
19 template <class T>
20 struct C
21 {
CC22   constexpr C(T) { }
CC23   C() {}
24 };
25 
26 struct D
27 {
28   C<D> c;
29 };
30 
31 constexpr D d {};		// { dg-error "non-.constexpr. function" }
32