// { dg-do run } | |
extern "C" void abort (); | |
struct A { | |
union { | |
int a; | |
double b; | |
int d; | |
}; | |
int c; | |
}; | |
struct B : public A { | |
union { | |
double a; | |
void *c; | |
}; | |
float b; | |
int e; | |
}; | |
int main () | |
{ | |
struct B b; | |
b.a = 1.5; | |
b.b = 2.5; | |
b.d = 1; | |
b.e = 2; | |
if (b.a != 1.5 || b.b != 2.5 || b.d != 1 || b.e != 2) | |
abort (); | |
b.c = &b.a; | |
b.d = b.e; | |
if (b.c != &b.a || b.d != 2) | |
abort (); | |
return 0; | |
} |