/* PR c/19342 */ typedef enum { A, B, C, D } E; struct S { E __attribute__ ((mode (__byte__))) a; E __attribute__ ((mode (__byte__))) b; E __attribute__ ((mode (__byte__))) c; E __attribute__ ((mode (__byte__))) d; }; extern void abort (void); extern void exit (int); void foo (struct S *s) { if (s->a != s->b) abort (); if (s->c != C) abort (); } int main (void) { struct S s[2]; s[0].a = B; s[0].b = B; s[0].c = C; s[0].d = D; s[1].a = D; s[1].b = C; s[1].c = B; s[1].d = A; foo (s); exit (0); }