// 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;