view gcc/testsuite/g++.dg/torture/pr71571.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do run }
// { dg-options "-fno-inline" { target { ! fpic } } }
// { dg-options "-fpic -fno-inline" { target fpic } }

class XBase
{
public:
 virtual void FuncA() = 0;
};

class Y
{
protected:
 virtual void FuncB() {}
};

class X1 : public Y, public XBase
{
public:
 void FuncA() {}
};

class X2 : public XBase
{
public:
 X2(XBase &xb) : m_xb(xb) { }
 void FuncA()
 {
  m_xb.FuncA();
 }

private:
 XBase &m_xb;
};


int main()
{
 X1 x1;
 X2 x2(x1);
 XBase *pxb = &x2;
 pxb->FuncA();
}