1// PR c++/42328
2
3template<typename T, typename U>
4class freeList
5{
6public:
7  void foo() {};
8};
9
10class bar {};
11
12class baz;
13template<typename T> class freeList<T, baz> { void foo(); };
14
15class baz : protected freeList<bar, baz>
16{
17  template<typename T>
18  friend
19  void freeList<T, baz>::foo();
20};
21
22baz b;
23