1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3
4 typedef signed char int8_T;
5 typedef int int32_T;
6
7 typedef struct {
8 int8_T a;
9 } struct0_T;
10
11 typedef struct {
12 struct0_T f10[4];
13 } struct_T;
14
15 typedef struct {
16 struct_T f9[4];
17 } b_struct_T;
18
19 typedef struct {
20 b_struct_T f8[4];
21 } c_struct_T;
22
23 typedef struct {
24 c_struct_T f7[4];
25 } d_struct_T;
26
27 typedef struct {
28 d_struct_T f6[4];
29 } e_struct_T;
30
31 typedef struct {
32 e_struct_T f5[4];
33 } f_struct_T;
34
35 typedef struct {
36 f_struct_T f4[4];
37 } g_struct_T;
38
39 typedef struct {
40 g_struct_T f3[4];
41 } h_struct_T;
42
43 typedef struct {
44 h_struct_T f2[4];
45 } i_struct_T;
46
47 typedef struct {
48 i_struct_T f1[4];
49 } j_struct_T;
50
51 typedef struct {
52 struct {
53 j_struct_T ds21[4];
54 i_struct_T ds20[4];
55 i_struct_T r9;
56 } f0;
57 } deep_struct_arraysStackData;
58
59 /* Function Definitions */
deep_struct_arrays(deep_struct_arraysStackData * SD,int8_T in1,int8_T inCount,int8_T * out1,int8_T * out2,struct0_T out3[4])60 void deep_struct_arrays(deep_struct_arraysStackData *SD,
61 int8_T in1, int8_T inCount, int8_T *out1, int8_T *out2, struct0_T out3[4])
62 {
63 struct0_T r;
64 struct_T r1;
65 b_struct_T r2;
66 c_struct_T r3;
67 d_struct_T r4;
68 e_struct_T r5;
69 f_struct_T r6;
70 g_struct_T r7;
71 h_struct_T r8;
72 int32_T count;
73 int32_T i;
74
75 /* Check properties of input in1 */
76 /* Check properties of input inCount */
77 /* Copyright 2006 The MathWorks, Inc. */
78 r.a = in1;
79 r1.f10[0] = r;
80 r1.f10[1] = r;
81 r1.f10[2] = r;
82 r1.f10[3] = r;
83 r2.f9[0] = r1;
84 r2.f9[1] = r1;
85 r2.f9[2] = r1;
86 r2.f9[3] = r1;
87 r3.f8[0] = r2;
88 r3.f8[1] = r2;
89 r3.f8[2] = r2;
90 r3.f8[3] = r2;
91 r4.f7[0] = r3;
92 r4.f7[1] = r3;
93 r4.f7[2] = r3;
94 r4.f7[3] = r3;
95 r5.f6[0] = r4;
96 r5.f6[1] = r4;
97 r5.f6[2] = r4;
98 r5.f6[3] = r4;
99 r6.f5[0] = r5;
100 r6.f5[1] = r5;
101 r6.f5[2] = r5;
102 r6.f5[3] = r5;
103 r7.f4[0] = r6;
104 r7.f4[1] = r6;
105 r7.f4[2] = r6;
106 r7.f4[3] = r6;
107 r8.f3[0] = r7;
108 r8.f3[1] = r7;
109 r8.f3[2] = r7;
110 r8.f3[3] = r7;
111 SD->f0.r9.f2[0] = r8;
112 SD->f0.r9.f2[1] = r8;
113 SD->f0.r9.f2[2] = r8;
114 SD->f0.r9.f2[3] = r8;
115 SD->f0.ds20[0] = SD->f0.r9;
116 SD->f0.ds20[3] = SD->f0.r9;
117 count = 0;
118 while (count < inCount) {
119 i = in1 + SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0]
120 .f10[0].a;
121 if (i > 127) {
122 i = 127;
123 } else {
124 if (i < -128) {
125 i = -128;
126 }
127 }
128
129 SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0].f10[0].a =
130 (int8_T)i;
131 i = SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].a
132 + 3;
133 if (i > 127) {
134 i = 127;
135 }
136
137 SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].a =
138 (int8_T)i;
139 count++;
140 }
141
142 if (inCount > 10) {
143 SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
144 a = 14;
145 } else {
146 SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
147 a = 16;
148 }
149
150 *out1 = SD->f0.ds20[0].f2[0].f3[0].f4[0].f5[0].f6[0].f7[0].f8[0].f9[0].f10[0].
151 a;
152 *out2 = SD->f0.ds20[3].f2[3].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3].f10[3].
153 a;
154 out3[0] = r;
155 out3[1] = r;
156 out3[2] = r;
157 out3[3] = SD->f0.ds21[0].f1[1].f2[2].f3[3].f4[3].f5[3].f6[3].f7[3].f8[3].f9[3]
158 .f10[3];
159 }
160