https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117993
--- Comment #8 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Patrick Palka from comment #6) > (In reply to Andrew Pinski from comment #4) > > (In reply to Andrew Pinski from comment #3) > > > I suspect for some reason we think the current instantiation does not > > > have a > > > dependent base for some reason. > > > > That is any_dependent_bases_p is returning false for `struct B<T>::C<n>` > > type. > Indeed, so it seems any_dependent_bases_p should recursively consider > indirect bases. Yes, at least if the direct base is currently_open_class. > Or for > > template<class T> > struct B { template<class U> struct C; }; > > template<class T> > template<class U> > struct B<T>::C : B<T> { } > > should BINFO_DEPENDENT_BASE_P be set on the base B<T>? No, we want to look into B<T>, it refers to the current instantiation.