/* Test to verify that past-the-end multibyte writes via lvalues of wider
   types than char are diagnosed.
   { dg-do compile }
   { dg-require-effective-target int32plus }
   { dg-options "-O2 -fno-tree-vectorize -Wall -Wno-array-bounds" }  */

typedef __INT16_TYPE__  int16_t;

char a4[4], a8[8], a16[16];

void test_int16 (void)
{
  char *p = a4 + 1;
  *(int16_t*)p = 0;
  *(int16_t*)(p + 2) = 0;   // { dg-warning "writing 2 bytes into a region of size 1" }
}