/* PR middle-end/48335 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O2 -fno-tree-sra" } */ | |
typedef short U __attribute__((may_alias, aligned (1))); | |
struct S | |
{ | |
double d; | |
}; | |
int | |
f1 (struct S x) | |
{ | |
struct S s = x; | |
return ((U *)((char *) &s.d + 1))[-1]; | |
} | |
int | |
f2 (struct S x) | |
{ | |
struct S s = x; | |
return ((U *)((char *) &s.d + 1))[-2]; | |
} | |
int | |
f3 (struct S x) | |
{ | |
struct S s = x; | |
return ((U *)((char *) &s.d + 1))[5]; | |
} |