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