111
|
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:
|
|
14 virtual void FuncB() {}
|
|
15 };
|
|
16
|
|
17 class X1 : public Y, public XBase
|
|
18 {
|
|
19 public:
|
|
20 void FuncA() {}
|
|
21 };
|
|
22
|
|
23 class X2 : public XBase
|
|
24 {
|
|
25 public:
|
|
26 X2(XBase &xb) : m_xb(xb) { }
|
|
27 void FuncA()
|
|
28 {
|
|
29 m_xb.FuncA();
|
|
30 }
|
|
31
|
|
32 private:
|
|
33 XBase &m_xb;
|
|
34 };
|
|
35
|
|
36
|
|
37 int main()
|
|
38 {
|
|
39 X1 x1;
|
|
40 X2 x2(x1);
|
|
41 XBase *pxb = &x2;
|
|
42 pxb->FuncA();
|
|
43 }
|