gdb
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / scope0.c
CommitLineData
c906108c
SS
1static int filelocal = 1; /* In Data section */
2static int filelocal_bss; /* In BSS section */
3#ifndef __STDC__
4#define const /**/
5#endif
6static const int filelocal_ro = 201; /* In Read-Only Data section */
7
085dd6e6
JM
8extern void init1();
9extern void foo();
10
11int autovars (int bcd, int abc);
12int localscopes (int x);
13int useit (int val);
0219b378 14int useitp (const int *val);
085dd6e6
JM
15void init0();
16void marker1 ();
17void marker2 ();
18void marker3 ();
19void marker4 ();
20
21int main ()
c906108c
SS
22{
23#ifdef usestubs
24 set_debug_traps();
25 breakpoint();
26#endif
27 init0 ();
28 foo ();
29 autovars (5, 6);
30 localscopes (0);
31}
32
33/* On some systems, such as AIX, unreferenced variables are deleted
0219b378
DJ
34 from the executable. On other compilers, such as ARM RealView,
35 const variables without their address taken are deleted. */
085dd6e6 36void usestatics ()
c906108c 37{
0219b378
DJ
38 useitp (&filelocal);
39 useitp (&filelocal_bss);
40 useitp (&filelocal_ro);
c906108c
SS
41}
42
085dd6e6 43void init0 ()
c906108c
SS
44{
45 filelocal_bss = 101;
46 init1 ();
47}
48
49/* This is to derail optimizer in localscopes.
50 Return 1 + 2 + . . . + N. */
085dd6e6
JM
51#ifdef PROTOTYPES
52int
53sum_upto (int n)
54#else
c906108c
SS
55int
56sum_upto (n)
57 int n;
085dd6e6 58#endif
c906108c
SS
59{
60 int i;
61 int retval = 0;
62
63 for (i = 1; i <= n; ++i)
64 retval += i;
65 return retval;
66}
67
085dd6e6
JM
68#ifdef PROTOTYPES
69int
70useit (int val)
71#else
c906108c 72int
0219b378 73useit (val) int val;
085dd6e6 74#endif
c906108c
SS
75{
76 static int usedval;
77
78 usedval = val;
79 return val + sum_upto (0);
80}
81
0219b378
DJ
82#ifdef PROTOTYPES
83int
84useitp (const int *val)
85#else
86int
87useitp (val) const int *val;
88#endif
89{
90 static int usedval;
91
92 usedval = *val;
93 return *val + sum_upto (0);
94}
95
085dd6e6
JM
96#ifdef PROTOTYPES
97int
98autovars (int bcd, int abc)
99#else
c906108c
SS
100int
101autovars (bcd, abc)
102 int bcd;
103 int abc;
085dd6e6 104#endif
c906108c
SS
105{
106 int i0 = useit (0), i1 = useit (1), i2 = useit (2);
107 int i3 = useit (3), i4 = useit (4), i5 = useit (5);
108 int i6 = useit (6), i7 = useit (7), i8 = useit (8);
109 int i9 = useit (9), i10 = useit (10), i11 = useit (11);
110 int i12 = useit (12), i13 = useit (13), i14 = useit (14);
111 int i15 = useit (15), i16 = useit (16), i17 = useit (17);
112 int i18 = useit (18), i19 = useit (19), i20 = useit (20);
113 int i21 = useit (21), i22 = useit (22), i23 = useit (23);
114 int i24 = useit (24), i25 = useit (25), i26 = useit (26);
115 int i27 = useit (27), i28 = useit (28), i29 = useit (29);
116 int i30 = useit (30), i31 = useit (31), i32 = useit (32);
117 int i33 = useit (33), i34 = useit (34), i35 = useit (35);
118 int i36 = useit (36), i37 = useit (37), i38 = useit (38);
119 int i39 = useit (39), i40 = useit (40), i41 = useit (41);
120 int i42 = useit (42), i43 = useit (43), i44 = useit (44);
121 int i45 = useit (45), i46 = useit (46), i47 = useit (47);
122 int i48 = useit (48), i49 = useit (49), i50 = useit (50);
123 int i51 = useit (51), i52 = useit (52), i53 = useit (53);
124 int i54 = useit (54), i55 = useit (55), i56 = useit (56);
125 int i57 = useit (57), i58 = useit (58), i59 = useit (59);
126 int i60 = useit (60), i61 = useit (61), i62 = useit (62);
127 int i63 = useit (63), i64 = useit (64), i65 = useit (65);
128 int i66 = useit (66), i67 = useit (67), i68 = useit (68);
129 int i69 = useit (69), i70 = useit (70), i71 = useit (71);
130 int i72 = useit (72), i73 = useit (73), i74 = useit (74);
131 int i75 = useit (75), i76 = useit (76), i77 = useit (77);
132 int i78 = useit (78), i79 = useit (79), i80 = useit (80);
133 int i81 = useit (81), i82 = useit (82), i83 = useit (83);
134 int i84 = useit (84), i85 = useit (85), i86 = useit (86);
135 int i87 = useit (87), i88 = useit (88), i89 = useit (89);
136 int i90 = useit (90), i91 = useit (91), i92 = useit (92);
137 int i93 = useit (93), i94 = useit (94), i95 = useit (95);
138 int i96 = useit (96), i97 = useit (97), i98 = useit (98);
139 int i99 = useit (99);
140
141 /* Use all 100 of the local variables to derail agressive optimizers. */
142
143 useit ( i0); useit ( i1); useit ( i2); useit ( i3); useit ( i4);
144 useit ( i5); useit ( i6); useit ( i7); useit ( i8); useit ( i9);
145 useit (i10); useit (i11); useit (i12); useit (i13); useit (i14);
146 useit (i15); useit (i16); useit (i17); useit (i18); useit (i19);
147 useit (i20); useit (i21); useit (i22); useit (i23); useit (i24);
148 useit (i25); useit (i26); useit (i27); useit (i28); useit (i29);
149 useit (i30); useit (i31); useit (i32); useit (i33); useit (i34);
150 useit (i35); useit (i36); useit (i37); useit (i38); useit (i39);
151 useit (i40); useit (i41); useit (i42); useit (i43); useit (i44);
152 useit (i45); useit (i46); useit (i47); useit (i48); useit (i49);
153 useit (i50); useit (i51); useit (i52); useit (i53); useit (i54);
154 useit (i55); useit (i56); useit (i57); useit (i58); useit (i59);
155 useit (i60); useit (i61); useit (i62); useit (i63); useit (i64);
156 useit (i65); useit (i66); useit (i67); useit (i68); useit (i69);
157 useit (i70); useit (i71); useit (i72); useit (i73); useit (i74);
158 useit (i75); useit (i76); useit (i77); useit (i78); useit (i79);
159 useit (i80); useit (i81); useit (i82); useit (i83); useit (i84);
160 useit (i85); useit (i86); useit (i87); useit (i88); useit (i89);
161 useit (i90); useit (i91); useit (i92); useit (i93); useit (i94);
162 useit (i95); useit (i96); useit (i97); useit (i98); useit (i99);
163
164 useit (abc); useit (bcd);
165
166 marker1 ();
167 return i0 + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10
168 + i11 + i12 + i13 + i14 + i15 + i16 + i17 + i18 + i19 + i20
169 + i21 + i22 + i23 + i24 + i25 + i26 + i27 + i28 + i29 + i30
170 + i31 + i32 + i33 + i34 + i35 + i36 + i37 + i38 + i39 + i40
171 + i41 + i42 + i43 + i44 + i45 + i46 + i47 + i48 + i49 + i50
172 + i51 + i52 + i53 + i54 + i55 + i56 + i57 + i58 + i59 + i60
173 + i61 + i62 + i63 + i64 + i65 + i66 + i67 + i68 + i69 + i70
174 + i71 + i72 + i73 + i74 + i75 + i76 + i77 + i78 + i79 + i80
175 + i81 + i82 + i83 + i84 + i85 + i86 + i87 + i88 + i89 + i90
176 + i91 + i92 + i93 + i94 + i95 + i96 + i97 + i98 + i99 + abc + bcd;
177}
178
085dd6e6
JM
179#ifdef PROTOTYPES
180int
181localscopes (int x)
182#else
c906108c
SS
183int
184localscopes (x)
185 int x;
085dd6e6 186#endif
c906108c
SS
187{
188 int localval;
189 int retval;
190 int i;
191
192 localval = 0;
193 useit (localval);
194
195 {
196 int localval = x + 4 + sum_upto (3); /* 10 */
197 int localval1 = x + 5 + sum_upto (3); /* 11 */
198
199 useit (localval);
200 useit (localval1);
201 marker2 ();
202 {
203 int localval = localval1 + 3 + sum_upto (3); /* 20 */
204 int localval2 = localval1 + sum_upto (1); /* 12 */
205 useit (localval);
206 useit (localval2);
207 marker3 ();
208 {
209 int localval = localval2 + 3 + sum_upto (5); /* 30 */
210 int localval3 = localval2 + sum_upto (1); /* 13 */
211 useit (localval);
212 useit (localval3);
213 marker4 ();
214 retval = x + localval1 + localval2 + localval3;
215 }
216 }
217 }
218 return retval;
219}
220
085dd6e6
JM
221void marker1 () {}
222void marker2 () {}
223void marker3 () {}
224void marker4 () {}
This page took 1.084599 seconds and 4 git commands to generate.