1  /* { dg-do run } */
       2  
       3  #define NI __attribute__((noinline, noclone))
       4  
       5  typedef __INT8_TYPE__ s8;
       6  typedef __INT16_TYPE__ s16;
       7  typedef __int24 s24;
       8  typedef __INT32_TYPE__ s32;
       9  
      10  static s8 arr8[3];
      11  static s16 arr16[3];
      12  static s24 arr24[3];
      13  static s32 arr32[3];
      14  
      15  NI void set8  (s8  *p) { p[0] = -123; p[1]  = -23; p[2]  = -34; }
      16  NI void set16 (s16 *p) { p[0] = -123; p[1] = -234; p[2] = -345; }
      17  NI void set24 (s24 *p) { p[0] = -123; p[1] = -234; p[2] = -345; }
      18  NI void set32 (s32 *p) { p[0] = -123; p[1] = -234; p[2] = -345; }
      19  
      20  void test8 (void)
      21  {
      22    set8 (arr8);
      23    if (arr8[0] != -123 || arr8[1] != -23 || arr8[2] != -34)
      24      __builtin_abort();
      25  }
      26  
      27  void test16 (void)
      28  {
      29    set16 (arr16);
      30    if (arr16[0] != -123 || arr16[1] != -234 || arr16[2] != -345)
      31      __builtin_abort();
      32  }
      33  
      34  void test24 (void)
      35  {
      36    set24 (arr24);
      37    if (arr24[0] != -123 || arr24[1] != -234 || arr24[2] != -345)
      38      __builtin_abort();
      39  }
      40  
      41  void test32 (void)
      42  {
      43    set32 (arr32);
      44    if (arr32[0] != -123 || arr32[1] != -234 || arr32[2] != -345)
      45      __builtin_abort();
      46  }
      47  
      48  int main (void)
      49  {
      50    test8();
      51    test16();
      52    test24();
      53    test32();
      54    return 0;
      55  }