/* { dg-require-effective-target int32plus } */ | |
#ifdef __UINT32_TYPE__ | |
typedef __UINT32_TYPE__ uint32_t; | |
#else | |
typedef unsigned uint32_t; | |
#endif | |
#ifdef __UINT8_TYPE__ | |
typedef __UINT8_TYPE__ uint8_t; | |
#else | |
typedef unsigned char uint8_t; | |
#endif | |
struct | |
{ | |
uint32_t a; | |
uint8_t b; | |
} s = { 0x123456, 0x78 }; | |
int pr67781() | |
{ | |
uint32_t c = (s.a << 8) | s.b; | |
return c; | |
} | |
int | |
main () | |
{ | |
if (sizeof (uint32_t) * __CHAR_BIT__ != 32) | |
return 0; | |
if (pr67781 () != 0x12345678) | |
__builtin_abort (); | |
return 0; | |
} |