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()39int main() { 40 } 41