/* { dg-do compile } */ | |
union u_u16 | |
{ | |
unsigned short v; | |
struct | |
{ | |
unsigned char lo8, hi8; | |
} __attribute__ ((__may_alias__)) u; | |
} __attribute__ ((__may_alias__)); | |
union u_u32 | |
{ | |
unsigned int v; | |
struct | |
{ | |
u_u16 lo16, hi16; | |
} u; | |
} __attribute__ ((__may_alias__)); | |
union u_u64 | |
{ | |
struct | |
{ | |
u_u32 lo32, hi32; | |
} u; | |
}; | |
struct Record | |
{ | |
}; | |
long long | |
UnpackFullKey (Record & rec, const char *&p) | |
{ | |
long long c64 = 0; | |
(*(u_u16 *) & (*(u_u32 *) & ( *(u_u64*)&c64).u.lo32.v).u.lo16.v).u.hi8 = 1; | |
return c64; | |
} | |