/* PR c++/3012 */ /* { dg-do compile } */ class A { public: template void foo() const { } }; template class B { public: void bar(const A& a) const { // Compile used to fail with parse error before `;' token a.foo(); } }; int main() { A a; B b; b.bar(a); }