aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2024-08-30 16:34:11 -0400
committerMarek Polacek <polacek@redhat.com>2024-08-30 16:34:31 -0400
commitffd56dcc11e32033a1f3a964af584dc32321a125 (patch)
treef32d13b4fcecc6f79ed7e07adc2f50122aee961f /gcc
parentf93a38f3fc8b20942896d037f3833d6b383dd3d8 (diff)
downloadgcc-ffd56dcc11e32033a1f3a964af584dc32321a125.zip
gcc-ffd56dcc11e32033a1f3a964af584dc32321a125.tar.gz
gcc-ffd56dcc11e32033a1f3a964af584dc32321a125.tar.bz2
c++: add fixed test [PR115616]
This got fixed by r15-2120. PR c++/115616 gcc/testsuite/ChangeLog: * g++.dg/template/friend83.C: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/template/friend83.C24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/friend83.C b/gcc/testsuite/g++.dg/template/friend83.C
new file mode 100644
index 0000000..edd2961
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend83.C
@@ -0,0 +1,24 @@
+// PR c++/115616
+// { dg-do compile { target c++20 } }
+
+template <int X, int Y> void bar() {}
+
+template <typename T>
+struct Reader
+{
+ template <int X>
+ friend void foo(Reader<T>);
+};
+
+template <typename T, int Y>
+struct Writer
+{
+ template <int X>
+ friend void foo(Reader<T>) {bar<X, Y>();}
+};
+
+int main()
+{
+ foo<10>(Reader<int>{});
+ Writer<int, 20>{};
+}