Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/tree-ssa/pr80803.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* { dg-do run } */ | |
2 /* { dg-options "-O" } */ | |
3 | |
4 struct S0 | |
5 { | |
6 unsigned a : 15; | |
7 int b; | |
8 int c; | |
9 }; | |
10 | |
11 struct S1 | |
12 { | |
13 struct S0 s0; | |
14 int e; | |
15 }; | |
16 | |
17 struct Z | |
18 { | |
19 char c; | |
20 int z; | |
21 } __attribute__((packed)); | |
22 | |
23 union U | |
24 { | |
25 struct S1 s1; | |
26 struct Z z; | |
27 }; | |
28 | |
29 | |
30 int __attribute__((noinline, noclone)) | |
31 return_zero (void) | |
32 { | |
33 return 0; | |
34 } | |
35 | |
36 volatile union U gu; | |
37 struct S0 gs; | |
38 | |
39 int __attribute__((noinline, noclone)) | |
40 check_outcome () | |
41 { | |
42 if (gs.a != 6 | |
43 || gs.b != 80000) | |
44 __builtin_abort (); | |
45 } | |
46 | |
47 int | |
48 main (int argc, char *argv[]) | |
49 { | |
50 union U u; | |
51 struct S1 m,n; | |
52 struct S0 l; | |
53 | |
54 if (return_zero ()) | |
55 u.z.z = 20000; | |
56 else | |
57 { | |
58 u.s1.s0.a = 6; | |
59 u.s1.s0.b = 80000; | |
60 u.s1.e = 2; | |
61 | |
62 n = u.s1; | |
63 m = n; | |
64 m.s0.c = 0; | |
65 l = m.s0; | |
66 gs = l; | |
67 } | |
68 | |
69 gu = u; | |
70 check_outcome (); | |
71 return 0; | |
72 } |