/* { dg-do compile } */ /* { dg-options "-Wcast-align=strict" } */ typedef char __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) c; typedef struct __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) { char x; } d; char *x; c *y; d *z; struct s { long long x; } *p; struct t { double x; } *q; void foo (void) { y = (c *) x; /* { dg-warning "7:cast \[^\n\r]* required alignment of target type" } */ z = (d *) x; /* { dg-warning "7:cast \[^\n\r]* required alignment of target type" } */ (long long *) p; /* { dg-bogus "alignment" } */ (double *) q; /* { dg-bogus "alignment" } */ }