summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/inherit/conv3.C
blob: 73d8c20f1430944c8ebffce50dce0e4b933ccd39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// PR 31074
// Bug: The reference cast wasn't finding the desired static_cast followed by
// const_cast interpretation.

struct Shape
{
  Shape() {}
  virtual ~Shape() {}
};

struct Loop
{
  Loop() {}
  virtual ~Loop() {}
  virtual void func() {}
};

struct Rect :
  public Shape,
  public Loop
{
  Rect() {}
  virtual ~Rect() {}
};

int main ()
{
  const Rect* rect = new Rect();
  Loop &l = ((Loop&)(*rect));
  return (&l != (const Loop *)rect);
}