xref: /aosp_15_r20/external/clang/test/CXX/class.derived/class.member.lookup/p9.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify %s
2*67e74705SXin Li 
3*67e74705SXin Li namespace rdar8436162 {
4*67e74705SXin Li   class ClsA {
5*67e74705SXin Li   public:
6*67e74705SXin Li     static void f();
7*67e74705SXin Li     void g();
8*67e74705SXin Li   };
9*67e74705SXin Li 
10*67e74705SXin Li   class ClsB : virtual private ClsA {
11*67e74705SXin Li   public:
12*67e74705SXin Li     using ClsA::f;
13*67e74705SXin Li     using ClsA::g; // expected-note{{member found by ambiguous name lookup}}
14*67e74705SXin Li   };
15*67e74705SXin Li 
16*67e74705SXin Li   class ClsF : virtual private ClsA {
17*67e74705SXin Li   public:
18*67e74705SXin Li     using ClsA::f;
19*67e74705SXin Li     using ClsA::g; // expected-note{{member found by ambiguous name lookup}}
20*67e74705SXin Li   };
21*67e74705SXin Li 
22*67e74705SXin Li   class ClsE : public ClsB, public ClsF {
test()23*67e74705SXin Li     void test() {
24*67e74705SXin Li       f();
25*67e74705SXin Li       g(); // expected-error{{member 'g' found in multiple base classes of different types}}
26*67e74705SXin Li     }
27*67e74705SXin Li   };
28*67e74705SXin Li }
29