view gcc/testsuite/g++.dg/other/access2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { 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-message "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();
}