// prms-id: 4667

int counter = 0;
int a = 0;
int b = 0;
int c = 0;

struct A {
  A() { a = counter++; }
};

struct B {
  B() { b = counter++; }
};

struct C : public virtual B {
  C() { c = counter++; }
};

struct D : public virtual A, public virtual C { };

extern "C" int printf(const char*,...);
int main(void) {
  D d;

  if (!(a == 0 && b == 1 && c == 2)) {
    return 1;
  }

  return 0;
}
