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
8template <typename> class X {
9  private:
10    struct Inner;
11
12    template <typename R>
13    friend typename X<R>::Inner * foo () { return 0; }
14};
15template class X<void>;
16
17struct U {
18    void bar () { foo<void> (); }
19};
20