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*c87b03e5Sespieint 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