// PR c++/21123
struct A
{
  A(const A &a);
  const A& operator=(const A& a);
};
struct B
{
  virtual A f(A);
};
struct C : virtual B
{
  virtual A f(A);
};
A C::f(A a) 
{
  return a;
}
// PR c++/21123
struct A
{
  A(const A &a);
  const A& operator=(const A& a);
};
struct B
{
  virtual A f(A);
};
struct C : virtual B
{
  virtual A f(A);
};
A C::f(A a) 
{
  return a;
}