modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/bitfld-6.c (about)

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