// { dg-do compile }
// Origin: Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
// PR c++/12924
template<typename> struct A {};
template<> struct A<void>
{
    template<typename T> void foo()
    {
        A<T> a;
        a.template foo<int>();	// { dg-error "member" }
    }
};
void bar()
{
    A<void> a;
    a.foo<int>();		// { dg-message "required" }
}