diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/friend21.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/friend21.C | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend21.C b/gcc/testsuite/g++.old-deja/g++.pt/friend21.C new file mode 100644 index 000000000..762ea9bae --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend21.C @@ -0,0 +1,30 @@ +// { dg-do assemble } + +template <class T> struct A { + static void f(); +}; + +template <class T> class B +{ + friend class A<T>; + static int i; // { dg-error "" } private +}; + +template <class T> class C +{ + template <class U> + friend class A; + + static int i; +}; + +template <class T> +void A<T>::f() +{ + B<T>::i = 3; + C<T>::i = 3; + C<double>::i = 3; + B<double>::i = 3; // { dg-error "" } member `i' is private +} + +template void A<int>::f(); |