1 // { dg-do run }
2 // { dg-options "-fno-inline" { target { ! fpic } } }
3 // { dg-options "-fpic -fno-inline" { target fpic } }
4 
5 class XBase
6 {
7 public:
8  virtual void FuncA() = 0;
9 };
10 
11 class Y
12 {
13 protected:
FuncB()14  virtual void FuncB() {}
15 };
16 
17 class X1 : public Y, public XBase
18 {
19 public:
FuncA()20  void FuncA() {}
21 };
22 
23 class X2 : public XBase
24 {
25 public:
X2(XBase & xb)26  X2(XBase &xb) : m_xb(xb) { }
FuncA()27  void FuncA()
28  {
29   m_xb.FuncA();
30  }
31 
32 private:
33  XBase &m_xb;
34 };
35 
36 
main()37 int main()
38 {
39  X1 x1;
40  X2 x2(x1);
41  XBase *pxb = &x2;
42  pxb->FuncA();
43 }
44