diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2000-02-07 15:35:14 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-02-07 15:35:14 -0500 |
commit | dd8216e19ee0c8f16303b8e412b8f30df82d4f42 (patch) | |
tree | d078883c51b41d49686c7b2d77df1437fefa7e95 | |
parent | f4a4b6690e669a9ba351e6fba06cf757349a9cf8 (diff) | |
download | gcc-dd8216e19ee0c8f16303b8e412b8f30df82d4f42.zip gcc-dd8216e19ee0c8f16303b8e412b8f30df82d4f42.tar.gz gcc-dd8216e19ee0c8f16303b8e412b8f30df82d4f42.tar.bz2 |
update
From-SVN: r31836
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.bob/nested1.C | 21 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/enum6.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/nest11.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.jason/report.C | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.law/arm14.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p8785.C | 25 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/pmf2.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/access7.C | 33 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/dynarray.C | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/explicit72.C | 14 |
10 files changed, 60 insertions, 48 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.bob/nested1.C b/gcc/testsuite/g++.old-deja/g++.bob/nested1.C index b5b7a76..aacfef4 100644 --- a/gcc/testsuite/g++.old-deja/g++.bob/nested1.C +++ b/gcc/testsuite/g++.old-deja/g++.bob/nested1.C @@ -1,15 +1,16 @@ // Build don't link: - class A { - class B { - typedef long T; - int i; - }; + +struct A { + struct B { + typedef long T; + int i; }; - class C { - class B { - typedef float T; - int i; - }; +}; +struct C { + struct B { + typedef float T; + int i; }; +}; C::B::T a; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C index 8c5c9ad..8e1a6df 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C @@ -11,6 +11,6 @@ void h(X* p) { X::E2 e2; int x2 = X::a2; - X::E1 e1; + X::E1 e1; // ERROR - within this context int x1 = X::a1; // ERROR - within this context } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C index 4a57b38..8a5de0f 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C @@ -6,6 +6,8 @@ class A { struct B { int x; }; + struct C; + friend struct C; struct C { int bug (A::B &y); }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/report.C b/gcc/testsuite/g++.old-deja/g++.jason/report.C index e514ae7..ed4d183 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/report.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/report.C @@ -38,15 +38,15 @@ int foo2 (int (*a)(int) = &foo) } class X{ - class Y{}; + class Y{}; // ERROR - private }; typedef int const * bart (); typedef bart const * const * bar2; // ERROR - qualifiers bar2 baz (X::Y y) -{ - X::Y f; +{ // ERROR - in this context + X::Y f; // ERROR - in this context bar2 wa [5]; wa[0] = baz(f); undef2 (1); // ERROR - implicit declaration diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm14.C b/gcc/testsuite/g++.old-deja/g++.law/arm14.C index d50b3cd..d4195d2 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/arm14.C +++ b/gcc/testsuite/g++.old-deja/g++.law/arm14.C @@ -18,7 +18,7 @@ void h(X* p) { X::E2 e2; int x2 = X::a2; - X::E1 e1; // Should be rejected, but isn't.// ERROR - .* , XFAIL *-*-* + X::E1 e1; // ERROR - within this context int x1 = X::a1; // ERROR - Should be rejected, and is. } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8785.C b/gcc/testsuite/g++.old-deja/g++.mike/p8785.C deleted file mode 100644 index e10f4cf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8785.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// prms-id: 8785 - -class Outer { -private: - int x; // ERROR - private -public: - struct Inner { - int y; - void f( Outer * p, int i) { - p->x = i; // ERROR - - }; - void f( Outer & p) { - p.x = y; // ERROR - - }; - }; -}; - -int main() { - Outer::Inner A; - Outer Thing; - - A.f(Thing); - A.f(&Thing,2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C index 5a5aa06..e50f472 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C @@ -8,8 +8,8 @@ public: }; class B_table : private A_table { - typedef void (B_table::* B_ti_fn) (int &item); public: + typedef void (B_table::* B_ti_fn) (int &item); B_table() { j = 0x4321;} virtual void call_fn_fn1(int &item, void *pfn1); void func1(int &item) { printf("func1(%d)\n",item);} diff --git a/gcc/testsuite/g++.old-deja/g++.other/access7.C b/gcc/testsuite/g++.old-deja/g++.other/access7.C new file mode 100644 index 0000000..5566d35 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/access7.C @@ -0,0 +1,33 @@ +// Test that access control for types and statics works properly +// with nested types. + +// Build don't link: + +class A { + static int I1; // ERROR - private + struct B1 { }; // ERROR - private +public: + static int I2; + struct B2 { }; +}; + +class D: public A { + struct E { + void f (); + }; +}; + +void D::E::f () +{ + int i = I1; // ERROR - within this context + B1 b1; // ERROR - within this context + i = I2; + B2 b2; +} + +void f () +{ + A::B1 b1; // ERROR - within this context + new A::B1; // ERROR - within this context + (A::B1) b1; // ERROR - within this context +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/dynarray.C b/gcc/testsuite/g++.old-deja/g++.pt/dynarray.C index 3e57b7b..62371fc 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/dynarray.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/dynarray.C @@ -1,6 +1,7 @@ // Build don't link: // Special g++ Options: -ansi // Origin: Theo Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> +// Special g++ Options: inline const unsigned& f(unsigned const& a) { return a; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C index bc9edfb..6e3e851 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C @@ -3,13 +3,13 @@ // Adapted by Alexandre Oliva <oliva@dcc.unicamp.br> // plain char, signed char and unsigned char are distinct types -template <class X, class Y> class bug {}; -template <class X> class bug<X,char> { typedef char t; }; -template <class X> class bug<X,unsigned char> { typedef unsigned char t; }; -template <class X> class bug<X,signed char> { typedef signed char t; }; -template <class X> class bug<char,X> { typedef char t; }; -template <class X> class bug<unsigned char,X> { typedef unsigned char t; }; -template <class X> class bug<signed char,X> { typedef signed char t; }; +template <class X, class Y> struct bug {}; +template <class X> struct bug<X,char> { typedef char t; }; +template <class X> struct bug<X,unsigned char> { typedef unsigned char t; }; +template <class X> struct bug<X,signed char> { typedef signed char t; }; +template <class X> struct bug<char,X> { typedef char t; }; +template <class X> struct bug<unsigned char,X> { typedef unsigned char t; }; +template <class X> struct bug<signed char,X> { typedef signed char t; }; void foo() { bug<int,char>::t(); |