1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 
3 // Derived from GNU's std::string
4 namespace test0 {
5   class A {
6     struct B {
7       unsigned long length;
8     };
9     struct C : B {
10       static const unsigned long max_length;
11     };
12   };
13 
14   const unsigned long A::C::max_length = sizeof(B);
15 }
16 
17 // Example from the standard.
18 namespace test1 {
19   class E {
20     int x;
21     class B {};
22 
23     class I {
24       B b;
25       int y; // expected-note {{declared private here}}
26       void f(E* p, int i) {
27         p->x = i;
28       }
29     };
30 
31     int g(I* p) { return p->y; } // expected-error {{'y' is a private member of 'test1::E::I'}}
32   };
33 }
34