30 lines
377 B
C++
30 lines
377 B
C++
|
/* { 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;
|
||
|
}
|