// { dg-do assemble  }
class A {
protected:
  int aData;
};
 
class B : public A {
public:
  virtual void func1() { 
    A::aData = 1;
  }
};
class C : virtual public B {
public:
  virtual void func1(void) {
    A::aData = 2;
  }
};
// { dg-do assemble  }
class A {
protected:
  int aData;
};
 
class B : public A {
public:
  virtual void func1() { 
    A::aData = 1;
  }
};
class C : virtual public B {
public:
  virtual void func1(void) {
    A::aData = 2;
  }
};