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>{}; +}