1 /* PR middle-end/17112 */ 2 /* { dg-do run } */ 3 /* { dg-require-effective-target int32plus } */ 4 /* { dg-options "-O2" } */ 5 6 extern void abort(void); 7 8 typedef struct { 9 int int24:24 __attribute__ ((packed)); 10 } myint24; 11 12 myint24 x[3] = { 13 0x123456, 14 0x789abc, 15 0xdef012 16 }; 17 18 myint24 y[3]; // starts out as zeros 19 foo()20void foo() 21 { 22 y[1] = x[1]; 23 } 24 main()25int main() 26 { 27 foo(); 28 29 if (y[0].int24 != 0 || y[2].int24 != 0) 30 abort(); 31 return 0; 32 } 33 34