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

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