xref: /llvm-project/clang/test/SemaCXX/access-member-pointer.cpp (revision d4c75cdddec4f9ba9201366b6a8f4f810e8f4a38)
1*d4c75cddSEli Friedman // RUN: %clang_cc1 -fsyntax-only -verify %s
2*d4c75cddSEli Friedman // PR7694
3*d4c75cddSEli Friedman 
4*d4c75cddSEli Friedman class A { };
5*d4c75cddSEli Friedman class B : private A { public: void foo(); }; // expected-note {{declared private here}}
foo()6*d4c75cddSEli Friedman void B::foo() {
7*d4c75cddSEli Friedman   (void)static_cast<void(A::*)()>(&B::foo);
8*d4c75cddSEli Friedman }
bar()9*d4c75cddSEli Friedman void bar() {
10*d4c75cddSEli Friedman   (void)static_cast<void(A::*)()>(&B::foo); // expected-error {{cannot cast 'B' to its private base class 'A'}}
11*d4c75cddSEli Friedman }
12