// 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; | |
} |