blob: 22526d6b59a4e9a9379108e14f678212ae33b2bf [file] [log] [blame]
// PR c++/32992
// { dg-do run }
// { dg-options "-O2" }
extern "C" void abort (void);
struct A
{
long int a1;
long int a2;
long int a3;
};
struct B
{
long int f[3];
operator A ()
{
union
{
long int t[3];
A a;
};
for (int i = 0; i < 3; i++)
t[i] = f[i];
return a;
}
};
int
main ()
{
B b = { {1, 3, 5} };
A a = b;
if (a.a1 != b.f[0] || a.a2 != b.f[1] || a.a3 != b.f[2])
abort ();
return 0;
}