1 /* { dg-require-effective-target int32plus } */ 2 #ifdef __UINT32_TYPE__ 3 typedef __UINT32_TYPE__ uint32_t; 4 #else 5 typedef unsigned uint32_t; 6 #endif 7 8 #ifdef __UINT8_TYPE__ 9 typedef __UINT8_TYPE__ uint8_t; 10 #else 11 typedef unsigned char uint8_t; 12 #endif 13 14 struct 15 { 16 uint32_t a; 17 uint8_t b; 18 } s = { 0x123456, 0x78 }; 19 pr67781()20int pr67781() 21 { 22 uint32_t c = (s.a << 8) | s.b; 23 return c; 24 } 25 26 int main()27main () 28 { 29 if (sizeof (uint32_t) * __CHAR_BIT__ != 32) 30 return 0; 31 32 if (pr67781 () != 0x12345678) 33 __builtin_abort (); 34 return 0; 35 } 36