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