| // PR c++/13009 | |
| // { dg-do run } | |
| struct A { | |
| char a; | |
| }; | |
| struct B: public virtual A { | |
| #if 0 // this piece of code works around the problem | |
| B& operator= (const B& other) | |
| { | |
| A::operator= (other); | |
| } | |
| #endif | |
| }; | |
| struct C: public B { | |
| char c; | |
| }; | |
| int main() { | |
| B b; | |
| b.a = 'b'; | |
| C c; | |
| c.a = c.c = 'c'; | |
| c.B::operator= (b); | |
| if (c.a != 'b' || c.c != 'c') | |
| return 1; | |
| } |