1// { dg-do run } 2 3extern "C" void abort (); 4 5class A { 6public: 7 virtual A* getThis() { return this; } 8}; 9 10class B { 11int a; 12public: 13 virtual B* getThis() { return this; } 14}; 15 16class AB : public A, public B { 17public: 18 virtual AB* getThis() { return this; } 19}; 20 21int main () 22{ 23 AB ab; 24 25 A* a = &ab; 26 B* b = &ab; 27 28 if (a->getThis() != a 29 || b->getThis() != b) 30 abort (); 31 32 return 0; 33} 34