1union U
2{
3  const int a;
4  unsigned b : 20;
5};
6
7static union U u = { 0x12345678 };
8
9/* Constant folding used to fail to account for endianness when folding a
10   union.  */
11
12int
13main (void)
14{
15#ifdef __BYTE_ORDER__
16#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
17  return u.b - 0x45678;
18#else
19  return u.b - 0x12345;
20#endif
21#endif
22  return 0;
23}
24