https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84789
Alexandre Oliva <aoliva at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aoliva at gcc dot gnu.org --- Comment #3 from Alexandre Oliva <aoliva at gcc dot gnu.org> --- I started looking into this, but I haven't got very far yet. The problem, AFAICT, is that we are resolving B<T>::A to struct A, and then it doesn't look template-dependent any more. It's a mistake: we can't resolve B<T>::A within C<T> during parsing, we can't assume that B<T> won't be specialized to something that doesn't have A as a base class, but rather as a nested type or typedef or whatever. If nobody beats me to it, I'll get back to this after getting some sleep.