aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>2002-12-29 17:01:45 +0000
committerKriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org>2002-12-29 17:01:45 +0000
commitf2551f357170b97a659ce98b43cd404e1b3e52d0 (patch)
tree4530f2bbbf16cced30463bf62dc5732725a6ce2d
parent348d9921079bfbf655422abf12e7d26697b74231 (diff)
downloadgcc-f2551f357170b97a659ce98b43cd404e1b3e52d0.zip
gcc-f2551f357170b97a659ce98b43cd404e1b3e52d0.tar.gz
gcc-f2551f357170b97a659ce98b43cd404e1b3e52d0.tar.bz2
re PR c++/2739 (g++ allows accessing private members)
PR c++/2739 * g++.dg/other/access2.C: New test. From-SVN: r60605
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/access2.C35
2 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8dc8451..3373f6d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/2739
+ * g++.dg/other/access2.C: New test.
+
2002-12-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
* g++.dg/other/anon-struct.C: No longer fails
diff --git a/gcc/testsuite/g++.dg/other/access2.C b/gcc/testsuite/g++.dg/other/access2.C
new file mode 100644
index 0000000..c7dd77a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/access2.C
@@ -0,0 +1,35 @@
+// { dg-do compile }
+// Origin: Dirk Mueller <dmuell@gmx.net>
+
+// PR c++/2739
+// Access to base class private static member.
+
+class Base {
+private:
+ static int fooprivate;
+protected:
+ static int fooprotected;
+public:
+ static int foopublic;
+};
+
+class Derived : public Base {
+public:
+ void test();
+};
+
+int Base::fooprivate=42; // { dg-error "private" }
+int Base::fooprotected=42;
+int Base::foopublic=42;
+
+void Derived::test() {
+ if ( fooprivate ); // { dg-error "context" }
+ if ( fooprotected );
+ if ( foopublic );
+}
+
+int main()
+{
+ Derived d;
+ d.test();
+}