blob: 4c73e58f407e28f833963655f6dda5274f0d35c2 [file] [log] [blame]
/* { dg-do run } */
/* { dg-additional-options "-fno-tree-dse" } */
union U { long long i; long f; };
struct a {union U u;};
struct aa {struct a a;};
struct b {union U u;};
struct bb {struct b b;};
long __attribute__((noipa))
foo (struct bb *bv, void *ptr)
{
struct aa *a = ptr;
struct bb *b = ptr;
bv->b.u.f = 1;
a->a.u.i = 0;
b->b.u.f = 0;
return bv->b.u.f;
}
int
main ()
{
union C {struct aa aa; struct bb bb;} v;
if (foo (&v.bb, &v) != 0)
__builtin_abort ();
return 0;
}