// { dg-do run } | |
extern "C" void abort (); | |
class A { | |
public: | |
virtual A* getThis() { return this; } | |
}; | |
class B { | |
int a; | |
public: | |
virtual B* getThis() { return this; } | |
}; | |
class AB : public A, public B { | |
public: | |
virtual AB* getThis() { return this; } | |
}; | |
int main () | |
{ | |
AB ab; | |
A* a = &ab; | |
B* b = &ab; | |
if (a->getThis() != a | |
|| b->getThis() != b) | |
abort (); | |
return 0; | |
} |