struct A { virtual int f(){ return 1; } };
struct B { virtual int f(){ return 2;} };
struct C: A, B { virtual int f(){ return 3;} };


int main(int argc, char* argv[])
{
  C c;
  C c2(c);
  assert(((A&)c2).f() == ((B&)c2).f());
  return 0;
}
