1*c87b03e5Sespie /* { dg-do compile { target i?86-*-* sparc*-*-* } } */
2*c87b03e5Sespie /* { dg-options "-O2" } */
3*c87b03e5Sespie 
4*c87b03e5Sespie typedef enum { false, true } __attribute__ ((packed)) boolean;
5*c87b03e5Sespie typedef struct {
6*c87b03e5Sespie   enum {
7*c87b03e5Sespie     A0 = 0, A1 = 1, A2 = 2
8*c87b03e5Sespie   } __attribute__((packed)) A:3;
9*c87b03e5Sespie   enum {
10*c87b03e5Sespie     B0 = 0, B1 = 1, B2 = 2
11*c87b03e5Sespie   } __attribute__((packed)) B:3;
12*c87b03e5Sespie   boolean C:1;
13*c87b03e5Sespie   boolean D:1;
14*c87b03e5Sespie   unsigned char :8;
15*c87b03e5Sespie } foo;
16*c87b03e5Sespie foo x = { A2, B1, false, true };
17*c87b03e5Sespie 
main(void)18*c87b03e5Sespie int main(void)
19*c87b03e5Sespie {
20*c87b03e5Sespie   if (sizeof (foo) != 2 || __alignof__ (foo) != 1)
21*c87b03e5Sespie     abort ();
22*c87b03e5Sespie 
23*c87b03e5Sespie   exit (0);
24*c87b03e5Sespie }
25