3 // Copyright (C) 2001 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 29 Jul 2001 <nathan@codesourcery.com>
6 // Origin snyder@fnal.gov
7 // Bug 3631. We mis-calculated the non-virtual part of a virtual
8 // thunk. Leading to a link failure, in this case.
10 struct A { virtual ~A () {} };
12 struct B : virtual public A
14 virtual void destroy() {}
17 class C : virtual public B {};
18 class D : virtual public C {};
19 class E : public virtual A {};
21 struct F : virtual public B, virtual public E
23 virtual void destroy() = 0;
26 struct G : public virtual F
28 virtual void destroy() {}
31 class H : virtual public C, virtual public F {};
32 class I : virtual public D, virtual public H {};
33 class J : public virtual G, public virtual H {};
35 class K : public virtual I, public virtual J