// { dg-do compile }
// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
// PR c++/10555: ICE for member class template when one of the
// template argument levels contains errors.
template <typename> struct A
{
    template <typename> struct B;
};
template <typename T> struct C
{
    typedef typename A<T>::template B<U> X; // { dg-error "declared|invalid" }
};
C<void> c;