1 // PR c++/53403
2 
3 template <typename T>
4 class Foo
5 {
6   typedef void type;
7   template <typename U> friend void f();
8 public:
Foo()9   Foo() {}
10 };
11 
12 template class Foo<void>;
13 
14 template <typename T>
f()15 void f()
16 {
17   typedef Foo<void>::type type;
18 }
19 
main()20 int main()
21 {
22   f<void>();
23 }
24