/* { dg-do run } */ | |
struct Foo { | |
Foo() {}; | |
int i; | |
short f; | |
}; | |
struct Bar : public Foo { | |
Bar() {}; | |
short b; | |
}; | |
extern "C" void abort(void); | |
int main() | |
{ | |
Bar b1, b2; | |
b2.i = 0; | |
b1.f = 0; | |
b1.b = 1; | |
b2.f = 1; | |
b2.b = 2; | |
static_cast<Foo&>(b1) = static_cast<Foo&>(b2); | |
if (b1.i != 0 || b1.b != 1) | |
abort (); | |
if (b1.f != 1) | |
abort (); | |
return 0; | |
} |