// PR c++/81917
// { dg-do compile { target c++11 } }

template <typename> using a = void;
template <typename, typename = void> struct b
{
  typedef int c;
};
template <typename d> class b<d, a<typename d::e>>;
template <typename d, typename = typename b<d>::c> class f;
template <typename> class g { };
template <typename, typename> class h
{
  class i;
  typedef g<f<i>> j;
  class i
  {
    j k;			// { dg-error "incomplete" }
  };
};
h<int, int> H;