1// PR c++/13009
2// { dg-do run }
3
4struct A {
5  char a;
6};
7
8struct B: public virtual A {
9  #if 0 // this piece of code works around the problem
10  B& operator= (const B& other)
11  {
12    A::operator= (other);
13  }
14  #endif
15};
16
17struct C: public B {
18  char c;
19};
20
21int main() {
22  B b;
23  b.a = 'b';
24  C c;
25  c.a = c.c = 'c';
26
27  c.B::operator= (b);
28  if (c.a != 'b' || c.c != 'c')
29    return 1;
30}
31