1// { dg-do compile }
2
3// Copyright (C) 2003 Free Software Foundation, Inc.
4// Contributed by Nathan Sidwell 28 Jan 2003 <nathan@codesourcery.com>
5
6// PR 9433. segfault at runtime.
7
8struct A        { virtual void f() {}; };
9struct B        {int b;};
10struct C : A, B { virtual void f() {}; int c;};
11struct D : C    {int d;};
12struct E : C    {int e;};
13struct F : protected D, E  {int f;};
14struct H : virtual F {int h;};
15struct I : H  {int i;};
16struct J : H  {int j;};
17struct K : I, J { virtual void f() {}; int k; };
18struct M : K  {int m;};
19struct N : M  {int n;};
20struct O : M  {int o;};
21struct P : N, O { virtual void f() {}; int p;};
22
23int main()
24{
25  P obj;
26  A* a1 = (D *) (&obj);
27  H* hp = dynamic_cast<H*>(a1);
28  return hp != 0;
29}
30