Update copyright year range in all GDB files
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / store.c
CommitLineData
27e829d0
AC
1/* Check that GDB can correctly update a value, living in a register,
2 in the target. This pretty much relies on the compiler taking heed
3 of requests for values to be stored in registers. */
4
de46ecd7
DC
5/* NOTE: carlton/2002-12-05: These functions were all static, but for
6 whatever reason that caused GCC 3.1 to optimize away some of the
7 function calls within main even when no optimization flags were
8 passed. */
9
3a871b37
DJ
10typedef signed char charest;
11
12charest
13add_charest (register charest u, register charest v)
27e829d0
AC
14{
15 return u + v;
16}
17
de46ecd7 18short
27e829d0
AC
19add_short (register short u, register short v)
20{
21 return u + v;
22}
23
de46ecd7 24int
27e829d0
AC
25add_int (register int u, register int v)
26{
27 return u + v;
28}
29
de46ecd7 30long
27e829d0
AC
31add_long (register long u, register long v)
32{
33 return u + v;
34}
35
81a58f5b
AC
36typedef long long longest;
37
38longest
39add_longest (register longest u, register longest v)
40{
41 return u + v;
42}
43
de46ecd7 44float
27e829d0
AC
45add_float (register float u, register float v)
46{
47 return u + v;
48}
49
de46ecd7 50double
27e829d0
AC
51add_double (register double u, register double v)
52{
53 return u + v;
54}
55
81a58f5b
AC
56typedef long double doublest;
57
58doublest
59add_doublest (register doublest u, register doublest v)
60{
61 return u + v;
62}
63
27e829d0
AC
64/* */
65
3a871b37
DJ
66charest
67wack_charest (register charest u, register charest v)
27e829d0 68{
3a871b37
DJ
69 register charest l = u, r = v;
70 l = add_charest (l, r);
71 return l + r;
27e829d0
AC
72}
73
de46ecd7 74short
27e829d0
AC
75wack_short (register short u, register short v)
76{
81a58f5b
AC
77 register short l = u, r = v;
78 l = add_short (l, r);
3a871b37 79 return l + r;
27e829d0
AC
80}
81
de46ecd7 82int
27e829d0
AC
83wack_int (register int u, register int v)
84{
81a58f5b
AC
85 register int l = u, r = v;
86 l = add_int (l, r);
3a871b37 87 return l + r;
27e829d0
AC
88}
89
de46ecd7 90long
27e829d0
AC
91wack_long (register long u, register long v)
92{
81a58f5b
AC
93 register long l = u, r = v;
94 l = add_long (l, r);
3a871b37 95 return l + r;
81a58f5b
AC
96}
97
98long
99wack_longest (register longest u, register longest v)
100{
101 register longest l = u, r = v;
102 l = add_longest (l, r);
3a871b37 103 return l + r;
27e829d0
AC
104}
105
de46ecd7 106float
27e829d0
AC
107wack_float (register float u, register float v)
108{
81a58f5b
AC
109 register float l = u, r = v;
110 l = add_float (l, r);
3a871b37 111 return l + r;
27e829d0
AC
112}
113
de46ecd7 114double
27e829d0
AC
115wack_double (register double u, register double v)
116{
81a58f5b
AC
117 register double l = u, r = v;
118 l = add_double (l, r);
3a871b37 119 return l + r;
81a58f5b
AC
120}
121
122doublest
123wack_doublest (register doublest u, register doublest v)
124{
125 register doublest l = u, r = v;
126 l = add_doublest (l, r);
3a871b37 127 return l + r;
27e829d0
AC
128}
129
81a58f5b
AC
130/* */
131
27e829d0
AC
132struct s_1 { short s[1]; } z_1, s_1;
133struct s_2 { short s[2]; } z_2, s_2;
134struct s_3 { short s[3]; } z_3, s_3;
135struct s_4 { short s[4]; } z_4, s_4;
136
de46ecd7 137struct s_1
27e829d0
AC
138add_struct_1 (struct s_1 s)
139{
140 int i;
141 for (i = 0; i < sizeof (s) / sizeof (s.s[0]); i++)
142 {
143 s.s[i] = s.s[i] + s.s[i];
144 }
145 return s;
146}
147
de46ecd7 148struct s_2
27e829d0
AC
149add_struct_2 (struct s_2 s)
150{
151 int i;
152 for (i = 0; i < sizeof (s) / sizeof (s.s[0]); i++)
153 {
154 s.s[i] = s.s[i] + s.s[i];
155 }
156 return s;
157}
158
de46ecd7 159struct s_3
27e829d0
AC
160add_struct_3 (struct s_3 s)
161{
162 int i;
163 for (i = 0; i < sizeof (s) / sizeof (s.s[0]); i++)
164 {
165 s.s[i] = s.s[i] + s.s[i];
166 }
167 return s;
168}
169
de46ecd7 170struct s_4
27e829d0
AC
171add_struct_4 (struct s_4 s)
172{
173 int i;
174 for (i = 0; i < sizeof (s) / sizeof (s.s[0]); i++)
175 {
176 s.s[i] = s.s[i] + s.s[i];
177 }
178 return s;
179}
180
de46ecd7 181struct s_1
27e829d0
AC
182wack_struct_1 (void)
183{
184 int i; register struct s_1 u = z_1;
185 for (i = 0; i < sizeof (s_1) / sizeof (s_1.s[0]); i++) { s_1.s[i] = i + 1; }
186 u = add_struct_1 (u);
187 return u;
188}
189
de46ecd7 190struct s_2
27e829d0
AC
191wack_struct_2 (void)
192{
193 int i; register struct s_2 u = z_2;
194 for (i = 0; i < sizeof (s_2) / sizeof (s_2.s[0]); i++) { s_2.s[i] = i + 1; }
195 u = add_struct_2 (u);
196 return u;
197}
198
de46ecd7 199struct s_3
27e829d0
AC
200wack_struct_3 (void)
201{
202 int i; register struct s_3 u = z_3;
203 for (i = 0; i < sizeof (s_3) / sizeof (s_3.s[0]); i++) { s_3.s[i] = i + 1; }
204 u = add_struct_3 (u);
205 return u;
206}
207
de46ecd7 208struct s_4
27e829d0
AC
209wack_struct_4 (void)
210{
211 int i; register struct s_4 u = z_4;
212 for (i = 0; i < sizeof (s_4) / sizeof (s_4.s[0]); i++) { s_4.s[i] = i + 1; }
213 u = add_struct_4 (u);
214 return u;
215}
216
217/* */
218
219struct f_1 {unsigned i:1;unsigned j:1;unsigned k:1; } f_1 = {1,1,1}, F_1;
220struct f_2 {unsigned i:2;unsigned j:2;unsigned k:2; } f_2 = {1,1,1}, F_2;
221struct f_3 {unsigned i:3;unsigned j:3;unsigned k:3; } f_3 = {1,1,1}, F_3;
222struct f_4 {unsigned i:4;unsigned j:4;unsigned k:4; } f_4 = {1,1,1}, F_4;
223
de46ecd7 224struct f_1
27e829d0
AC
225wack_field_1 (void)
226{
227 register struct f_1 u = f_1;
228 return u;
229}
230
de46ecd7 231struct f_2
27e829d0
AC
232wack_field_2 (void)
233{
234 register struct f_2 u = f_2;
235 return u;
236}
237
de46ecd7 238struct f_3
27e829d0
AC
239wack_field_3 (void)
240{
241 register struct f_3 u = f_3;
242 return u;
243}
244
de46ecd7 245struct f_4
27e829d0
AC
246wack_field_4 (void)
247{
248 register struct f_4 u = f_4;
249 return u;
250}
251
252/* */
253
254int
255main ()
256{
257 /* These calls are for current frame test. */
3a871b37 258 wack_charest (-1, -2);
81a58f5b
AC
259 wack_short (-1, -2);
260 wack_int (-1, -2);
261 wack_long (-1, -2);
262 wack_longest (-1, -2);
263 wack_float (-1, -2);
264 wack_double (-1, -2);
265 wack_doublest (-1, -2);
27e829d0
AC
266
267 /* These calls are for up frame. */
3a871b37 268 wack_charest (-1, -2);
81a58f5b
AC
269 wack_short (-1, -2);
270 wack_int (-1, -2);
271 wack_long (-1, -2);
272 wack_longest (-1, -2);
273 wack_float (-1, -2);
274 wack_double (-1, -2);
275 wack_doublest (-1, -2);
27e829d0
AC
276
277 /* These calls are for current frame test. */
278 wack_struct_1 ();
279 wack_struct_2 ();
280 wack_struct_3 ();
281 wack_struct_4 ();
282
283 /* These calls are for up frame. */
284 wack_struct_1 ();
285 wack_struct_2 ();
286 wack_struct_3 ();
287 wack_struct_4 ();
288
289 wack_field_1 ();
290 wack_field_2 ();
291 wack_field_3 ();
292 wack_field_4 ();
293
294 return 0;
295}
This page took 1.587407 seconds and 4 git commands to generate.