diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/friend11.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/friend11.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend11.C b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C new file mode 100644 index 000000000..04dbf2569 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C @@ -0,0 +1,32 @@ +// { dg-do assemble } +template <class T> +class C; + +template <class T> +struct S +{ + template <class U> + void f(U u) + { + C<U> cu; + cu.i = 3; // { dg-error "" } S<double>::f<U> is a friend, but this is + // S<int>::f<double>. + } +}; + + +template <class T> +class C +{ + template <class U> + friend void S<T>::f(U); + + int i; // { dg-error "" } private +}; + + +int main() +{ + S<int> si; + si.f(3.0); +} |