/* { dg-do compile } */

struct a 
{
  int a[100];
};
typedef struct a b __attribute__ ((aligned (32)));
typedef struct a c __attribute__ ((aligned (4)));

int t(b *a)
{
  int i;
  c *ptr = a;
  for (i=0;i<100;i++)
    ptr->a[i]++;
}

/* The memory access is through a pointer of type c which means
   *ptr is not aligned.  */

/* { dg-final { scan-tree-dump "can't force alignment" "vect" { xfail vect_element_align_preferred } } } */
/* { dg-final { scan-tree-dump-not "misalign = 0" "vect" { xfail vect_element_align_preferred } } } */
