diff options
author | Marek Polacek <polacek@redhat.com> | 2024-08-30 16:34:11 -0400 |
---|---|---|
committer | Marek Polacek <polacek@redhat.com> | 2024-08-30 16:34:31 -0400 |
commit | ffd56dcc11e32033a1f3a964af584dc32321a125 (patch) | |
tree | f32d13b4fcecc6f79ed7e07adc2f50122aee961f | |
parent | f93a38f3fc8b20942896d037f3833d6b383dd3d8 (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/testsuite/g++.dg/template/friend83.C | 24 |
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>{}; +} |