PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / abi / vthunk1.C
blob73a0b13f68c26c066df4dcc531a3b926880ecdc2
1 // { dg-do link }
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
37   public:
38   virtual ~K();
40 K::~K() {}
42 int main ()
44   return 0;