| /* { dg-require-effective-target int32plus } */ | |
| union U | |
| { | |
| const int a; | |
| unsigned b : 24; | |
| }; | |
| static union U u = { 0x12345678 }; | |
| /* Constant folding used to fail to account for endianness when folding a | |
| union. */ | |
| int | |
| main (void) | |
| { | |
| #ifdef __BYTE_ORDER__ | |
| #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ | |
| return u.b - 0x345678; | |
| #else | |
| return u.b - 0x123456; | |
| #endif | |
| #endif | |
| return 0; | |
| } |