blob: 171bcd71ec1063a51c1689eb68cbe6aef87773d3 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O1" } */
#include <stdlib.h>
typedef union
{
struct
{
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
} parts;
unsigned long whole;
} T;
T *g_t;
void bar (unsigned long x)
{
if (x != 0)
abort ();
}
int main ()
{
T one;
T two;
T tmp1, tmp2;
one.whole = 0xFFE0E0E0UL;
two.whole = 0xFF000000UL;
tmp1.parts = two.parts;
tmp2.parts = one.parts;
tmp2.parts.c = tmp1.parts.c;
one.parts = tmp2.parts;
g_t = &one;
bar (0);
return 0;
}