blob: 27dbbc7bb26b2a687ab5fedcaf083a1f1fa6ed2f [file] [log] [blame]
/* APPLE LOCAL file 5131847 */
/* { dg-do run { target i?86*-*-* } } */
/* { dg-options "" } */
extern void abort ();
union uu {
struct {
unsigned int index : 4;
unsigned int image : 4;
unsigned int unused : 24;
unsigned int unused2 : 32;
} ss;
unsigned long long token;
};
extern void myFunc (union uu *u, union uu *v, int n);
void myFunc (union uu *u, union uu *v, int n)
{
int unit;
for(unit = 0; unit < n; unit++)
{
unsigned int index;
index = u[unit].ss.index;
u[unit].token = v->token;
u[unit].ss.image = unit;
u[unit].ss.index = index;
}
}
#define n 4
int main(int argc, char *argv[])
{
int i;
union uu u[n] = {};
union uu v;
v.token = ~0ULL;
myFunc (u, &v, n);
#define UPPER1BITS (0xffffffff00000000ULL)
for(i = 0; i < n; i++)
{
if ((u[i].token & UPPER1BITS) != UPPER1BITS)
abort ();
}
return 0;
}