aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2021-04-22 13:32:40 -0400
committerPatrick Palka <ppalka@redhat.com>2021-04-22 13:32:40 -0400
commit330cc29c06306ebf7bd3b2d37704cc69944923ff (patch)
tree65c2252b6983ae4c165a5f0b99c1e80fde8119d0
parentac456fd981db6b0c2f7ee1ab0d17d36087a74dc2 (diff)
downloadgcc-330cc29c06306ebf7bd3b2d37704cc69944923ff.zip
gcc-330cc29c06306ebf7bd3b2d37704cc69944923ff.tar.gz
gcc-330cc29c06306ebf7bd3b2d37704cc69944923ff.tar.bz2
c++: Add testcase for already fixed PR [PR16617]
We correctly diagnose the invalid access since r11-1350. gcc/testsuite/ChangeLog: PR c++/16617 * g++.dg/template/access36.C: New test.
-rw-r--r--gcc/testsuite/g++.dg/template/access36.C25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/access36.C b/gcc/testsuite/g++.dg/template/access36.C
new file mode 100644
index 0000000..72ca23c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/access36.C
@@ -0,0 +1,25 @@
+// PR c++/16617
+
+class B
+{
+ protected:
+ int i;
+};
+
+template <class T> void fr ();
+
+class D2 : public B
+{
+ friend void fr<int> ();
+};
+
+template<int B::*> struct X
+{};
+
+template <class T> void fr ()
+{
+ X<&B::i> x1; // { dg-error "protected" }
+ X<&D2::i> x2; // { dg-error "protected" }
+}
+
+template void fr<char>();