1 // PR c++/13009
2 // { dg-do run }
3 
4 struct A {
5   char a;
6 };
7 
8 struct 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 
17 struct C: public B {
18   char c;
19 };
20 
main()21 int 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