/* PR middle-end/52419 */ | |
/* { dg-do run } */ | |
extern void abort (void); | |
typedef long long V | |
__attribute__ ((vector_size (2 * sizeof (long long)), may_alias)); | |
typedef struct S { V b; } P __attribute__((aligned (1))); | |
struct __attribute__((packed)) T { char c; P s; }; | |
__attribute__((noinline, noclone)) void | |
foo (P *p) | |
{ | |
p->b[1] = 5; | |
} | |
int | |
main () | |
{ | |
V a = { 3, 4 }; | |
struct T t; | |
t.s.b = a; | |
foo (&t.s); | |
if (t.s.b[0] != 3 || t.s.b[1] != 5) | |
abort (); | |
return 0; | |
} |