https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |7.0 --- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Martin Sebor from comment #8) > No change in GCC 7.0. > 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; }; > ^ No that is what we want. Before it was "no type named 'Q' in 'struct H<bool>'".