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()20 int pr67781()
21 {
22   uint32_t c = (s.a << 8) | s.b;
23   return c;
24 }
25 
26 int
main()27 main ()
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