1 // { dg-do compile } 2 3 // Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu> 4 5 // PR c++/9453 6 // Access checking when template friend is defined in class. 7 8 template <typename> class X { 9 private: 10 struct Inner; 11 12 template <typename R> foo(X<R> *)13 friend typename X<R>::Inner * foo (X<R>*) { return 0; } 14 }; 15 template class X<void>; 16 X<void>* p; 17 18 struct U { barU19 void bar () { foo (p); } 20 }; 21