diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/memfriend8.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/memfriend8.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/memfriend8.C b/gcc/testsuite/g++.dg/template/memfriend8.C new file mode 100644 index 000000000..886096b9d --- /dev/null +++ b/gcc/testsuite/g++.dg/template/memfriend8.C @@ -0,0 +1,25 @@ +// { dg-do compile } + +// Origin: Martin Sebor <sebor@roguewave.com> + +// PR c++/5369: Member function of class template as friend + +template <class T> +struct S +{ + int foo () { + return S<int>::bar (); + } + +private: + + template <class U> + friend int S<U>::foo (); + + static int bar () { return 0; } +}; + +int main () +{ + S<char>().foo (); +} |