2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr71571.C
blobe60edcd3c9b8ae5ce3afa635005dce25d4361e45
1 // { dg-do run }
2 // { dg-options "-fno-inline" { target { ! fpic } } }
3 // { dg-options "-fpic -fno-inline" { target fpic } }
5 class XBase
7 public:
8  virtual void FuncA() = 0;
9 };
11 class Y
13 protected:
14  virtual void FuncB() {}
17 class X1 : public Y, public XBase
19 public:
20  void FuncA() {}
23 class X2 : public XBase
25 public:
26  X2(XBase &xb) : m_xb(xb) { }
27  void FuncA()
28  {
29   m_xb.FuncA();
30  }
32 private:
33  XBase &m_xb;
37 int main()
39  X1 x1;
40  X2 x2(x1);
41  XBase *pxb = &x2;
42  pxb->FuncA();