diff options
Diffstat (limited to 'clang/test/CXX/class.access/class.friend/p1.cpp')
-rw-r--r-- | clang/test/CXX/class.access/class.friend/p1.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/CXX/class.access/class.friend/p1.cpp b/clang/test/CXX/class.access/class.friend/p1.cpp index af4df4c0f25..1668155c181 100644 --- a/clang/test/CXX/class.access/class.friend/p1.cpp +++ b/clang/test/CXX/class.access/class.friend/p1.cpp @@ -326,3 +326,18 @@ namespace test11 { void A::test2(B::private_type x) {} // expected-error {{'private_type' is a private member of 'test11::B'}} void A::test3(int x = B::private_type()) {} // expected-error {{'private_type' is a private member of 'test11::B'}} } + + +// PR9221 +namespace test12 { + struct A { + void foo(); + }; + class B : private A { + friend void A::foo(); + void *mem; + }; + void A::foo() { + void *var = static_cast<B*>(this)->mem; + } +} |