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