// Special g++ Options:

void  Foo () {}

class B {
public:
  virtual void foo() = 0;
};

class D: virtual public B {
public:
  void foo() { Foo(); }
};

class D1: public D {};

class D2: public D {};

class D1_2: public D1, public D2 {
public:
  void foo() { D1::foo(); D2::foo(); }
};

main() {
  D1_2 h;
  h.foo();
}
