aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/friend59.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/template/friend59.C')
-rw-r--r--gcc/testsuite/g++.dg/template/friend59.C22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/friend59.C b/gcc/testsuite/g++.dg/template/friend59.C
new file mode 100644
index 00000000000..e7c6d58ab1c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend59.C
@@ -0,0 +1,22 @@
+// PR c++/42328
+
+template<typename T, typename U>
+class freeList
+{
+public:
+ void foo() {};
+};
+
+class bar {};
+
+class baz;
+template<typename T> class freeList<T, baz> { void foo(); };
+
+class baz : protected freeList<bar, baz>
+{
+ template<typename T>
+ friend
+ void freeList<T, baz>::foo();
+};
+
+baz b;