https://gcc.gnu.org/g:ffd56dcc11e32033a1f3a964af584dc32321a125

commit r15-3325-gffd56dcc11e32033a1f3a964af584dc32321a125
Author: Marek Polacek <pola...@redhat.com>
Date:   Fri Aug 30 16:34:11 2024 -0400

    c++: add fixed test [PR115616]
    
    This got fixed by r15-2120.
    
            PR c++/115616
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/template/friend83.C: New test.

Diff:
---
 gcc/testsuite/g++.dg/template/friend83.C | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gcc/testsuite/g++.dg/template/friend83.C 
b/gcc/testsuite/g++.dg/template/friend83.C
new file mode 100644
index 000000000000..edd29614b315
--- /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>{};
+}

Reply via email to