1 /* PR middle-end/48335 */ 2 /* { dg-do compile } */ 3 /* { dg-options "-O2 -fno-tree-sra" } */ 4 5 typedef long long T __attribute__((may_alias, aligned (1))); 6 typedef short U __attribute__((may_alias, aligned (1))); 7 8 struct S 9 { 10 _Complex float d __attribute__((aligned (8))); 11 }; 12 13 T f1(struct S x)14f1 (struct S x) 15 { 16 struct S s = x; 17 return *(T *) ((char *) &s.d + 1); 18 } 19 20 int f2(struct S x)21f2 (struct S x) 22 { 23 struct S s = x; 24 return ((U *)((char *) &s.d + 1))[0]; 25 } 26 27 int f3(struct S x)28f3 (struct S x) 29 { 30 struct S s = x; 31 return ((U *)((char *) &s.d + 1))[1]; 32 } 33 34 int f4(struct S x)35f4 (struct S x) 36 { 37 struct S s = x; 38 return ((U *)((char *) &s.d + 1))[2]; 39 } 40 41 int f5(struct S x)42f5 (struct S x) 43 { 44 struct S s = x; 45 return ((U *)((char *) &s.d + 1))[3]; 46 } 47