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()37int main() 38 { 39 X1 x1; 40 X2 x2(x1); 41 XBase *pxb = &x2; 42 pxb->FuncA(); 43 } 44