OSDN Git Service

PR middle-end/41123
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr41123.c
1 /* PR middle-end/41123 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fno-strict-aliasing" } */
4
5 struct S { char a, b, c, d, e, f, g, h; };
6 struct T { int a, b; };
7
8 struct S
9 f1 (float _Complex x)
10 {
11   return *(struct S *) & x;
12 }
13
14 int
15 f2 (float _Complex x)
16 {
17   struct S f = f1 (x);
18   return f.b;
19 }
20
21 struct T
22 f3 (float _Complex x)
23 {
24   return *(struct T *) & x;
25 }
26
27 int
28 f4 (float _Complex x)
29 {
30   struct T f = f3 (x);
31   return f.a;
32 }
33
34 int
35 f5 (float _Complex x)
36 {
37   struct T f = f3 (x);
38   return f.b;
39 }
40
41 struct T
42 f6 (float _Complex x)
43 {
44   struct T f = f3 (x);
45   return f;
46 }