diff options
author | No Author <no-author@gcc.gnu.org> | 2001-01-01 18:42:49 +0000 |
---|---|---|
committer | No Author <no-author@gcc.gnu.org> | 2001-01-01 18:42:49 +0000 |
commit | cc6b76b3086cad497e6b0bab8089ddc98ddf7159 (patch) | |
tree | c718d02b478193b76031ad0f9c225979f207eb59 /gcc/testsuite/g++.old-deja/g++.other/friend1.C | |
parent | 8353b540e6bf07bc4de944da9c3772c619f86a9c (diff) |
This commit was manufactured by cvs2svn to create tagprereleases/gcc-2.95.3-test1
'gcc-2_95_3-test1'.
From-SVN: r38596
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/friend1.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/friend1.C | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend1.C b/gcc/testsuite/g++.old-deja/g++.other/friend1.C deleted file mode 100644 index 76fcebe1fae..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.other/friend1.C +++ /dev/null @@ -1,85 +0,0 @@ -// Build don't link: -// f() should be able to access B::j, as of FDIS [class.protected]/1 - -// Subject: Re: [bug] Inheritance and friend access control broken -// References: <199803032141.WAA09332@piano.dptmaths.ens-cachan.fr> -// <orhg5ff544.fsf@iguacu.dcc.unicamp.br> -// <199803041125.MAA06937@cor.dptmaths.ens-cachan.fr> -// <orn2f6ek92.fsf@iguacu.dcc.unicamp.br> <19980304102900.46897@dgii.com> -// From: Alexandre Oliva <oliva@dcc.unicamp.br> -// Date: 06 Mar 1998 01:43:18 -0300 - -template <int*> -class X {}; - -template <typename T> -void g(); - -struct S; - -template <typename T> -struct R; - -class B { -protected: - int i; // ERROR - in this context - static int j; -}; - -class D : public B { - friend void f(); - template <typename T> - friend void g(); - friend struct S; - template <typename T> - friend struct R; -}; - -struct S { - void h(); - X<&B::j> x; -}; - -template <typename T> -struct R { - void h(); - X<&B::j> x; -}; - -void f() -{ - ((B*)0)->i = 3; // ERROR - protected - ((D*)0)->i = 4; - B::j = 5; - D::j = 6; -} - -template <typename T> -void g() -{ - ((B*)0)->i = 3; // ERROR - protected - ((D*)0)->i = 4; - B::j = 5; - D::j = 6; -} - -template void g<int>(); - -void S::h() -{ - ((B*)0)->i = 3; // ERROR - protected - ((D*)0)->i = 4; - B::j = 5; - D::j = 6; -} - -template <typename T> -void R<T>::h() -{ - ((B*)0)->i = 3; // ERROR - protected - ((D*)0)->i = 4; - B::j = 5; - D::j = 6; -} - -template struct R<double>; |