// A constructor that might or might not be constexpr still makes
// its class literal.
// { dg-do compile { target c++11 } }

template <class T>
struct B
{
  constexpr B(T) { }
  constexpr B() {}
};

struct A
{
  B<A> b;
};

constexpr A a {};

template <class T>
struct C
{
  constexpr C(T) { }
  C() {}
};

struct D
{
  C<D> c;
};

constexpr D d {};		// { dg-error "non-.constexpr. function" }
