1 // { dg-do run  }
2 // This testcase ensures that we can build vtable names for complex MI
3 // classes.
4 
5 class C_A {
6 public:
foo(void *)7   virtual int foo(void *) { return  0; }
8 } a;
9 
10 class C_B : public C_A {
11 } b;
12 
13 class C_C : public C_A {
14 } c;
15 
16 class C_D : public C_A {
17 } d;
18 
19 class C_E : public C_C, public C_B {
20 public:
foo(void *)21   virtual int foo(void *) { return 0; }
22 } e;
23 
24 class C_F : public C_D, public C_B {
25 public:
foo(void *)26   virtual int foo(void *) { return 0; }
27 } f;
28 
29 class C_G : public C_A {
30 public:
foo(void *)31   virtual int foo(void *) { return 0; }
32 } g;
33 
34 class C_H : public C_G, public C_E, public C_F {
35 public:
foo(void *)36   virtual int foo(void *) { return 0; }
37 } h;
38 
main()39 int main() {
40 }
41