diff options
Diffstat (limited to 'test/CXX/class.access/p6.cpp')
-rw-r--r-- | test/CXX/class.access/p6.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/CXX/class.access/p6.cpp b/test/CXX/class.access/p6.cpp index 8795708..fe3304a 100644 --- a/test/CXX/class.access/p6.cpp +++ b/test/CXX/class.access/p6.cpp @@ -139,3 +139,32 @@ namespace test5 { template <A::Enum en> class bar {}; // expected-error {{'Enum' is a private member of 'test5::A'}} }; } + +namespace test6 { + class A { + public: class public_inner {}; + protected: class protected_inner {}; + private: class private_inner {}; // expected-note {{declared private here}} + }; + + class B : A { + public_inner a; + protected_inner b; + private_inner c; // expected-error {{ 'private_inner' is a private member of 'test6::A'}} + }; +} + +// PR9229 +namespace test7 { + void foo(int arg[1]); + class A { + void check(); + }; + class B { + friend class A; + A ins; + }; + void A::check() { + void foo(int arg[__builtin_offsetof(B, ins)]); + } +} |