// PR c++/3478 // { dg-options "" } template <typename> struct A { enum E {}; }; template <typename T> void foo() { enum A<void>::E e1; typename A<T>::E e2; enum A<T>::E e3; enum typename A<T>::E e4; // { dg-error "" } }