// { dg-do run } | |
extern "C" int printf (const char*, ...); | |
struct A | |
{ | |
virtual void f () { | |
printf ("%x\n", this); | |
} | |
}; | |
struct B : public A | |
{ | |
}; | |
struct C : public A | |
{ | |
}; | |
struct D : virtual public B, public C | |
{ | |
}; | |
int main () | |
{ | |
D d; | |
A* a1 = (A*) (B*) &d; | |
A* a2 = (A*) (C*) &d; | |
a1->f (); | |
a2->f (); | |
} |