https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail|6.0 |6.3.0, 7.0 --- Comment #8 from Martin Sebor <msebor at gcc dot gnu.org> --- No change in GCC 7.0. $ cat t.C && gcc -S t.C template <typename D> struct A { typename D::Q r;}; template<typename G> struct H : A<H<G> > { typedef G* Q; }; H<bool> h; t.C: In instantiation of ‘struct A<H<bool> >’: t.C:5:8: required from ‘struct H<bool>’ t.C:7:9: required from here t.C:2:26: error: invalid use of incomplete type ‘struct H<bool>’ struct A { typename D::Q r;}; ^ t.C:5:8: note: declaration of ‘struct H<bool>’ struct H : A<H<G> > { typedef G* Q; }; ^