// PR c++/58170 // { dg-require-effective-target c++11 } // { dg-prune-output "not declared" } // { dg-prune-output "expected" } template struct base { template struct derived; }; template template struct base::derived : public base { }; // This (wrong?) alias declaration provokes the crash. template using alias = base::derived; // { dg-error "template|typename" } // This one works: // template // using alias = typename base::template derived; template void f() { alias m{}; (void) m; } int main() { f(); }