// PR c++/42328 template class freeList { public: void foo() {}; }; class bar {}; class baz; template class freeList { void foo(); }; class baz : protected freeList { template friend void freeList::foo(); }; baz b;