1// run
2
3// Copyright 2012 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7// gc used to overflow a counter when a variable was
8// mentioned 256 times, and generate stack corruption.
9
10package main
11
12func main() {
13	F(1)
14}
15
16func F(arg int) {
17	var X interface{}
18	_ = X // used once
19	X = 0
20	X = 0
21	X = 0
22	X = 0
23	X = 0
24	X = 0
25	X = 0
26	X = 0
27	X = 0
28	X = 0
29	X = 0
30	X = 0
31	X = 0
32	X = 0
33	X = 0
34	X = 0
35	X = 0
36	X = 0
37	X = 0
38	X = 0
39	X = 0
40	X = 0
41	X = 0
42	X = 0
43	X = 0
44	X = 0
45	X = 0
46	X = 0
47	X = 0
48	X = 0
49	X = 0 // used 32 times
50	X = 0
51	X = 0
52	X = 0
53	X = 0
54	X = 0
55	X = 0
56	X = 0
57	X = 0
58	X = 0
59	X = 0
60	X = 0
61	X = 0
62	X = 0
63	X = 0
64	X = 0
65	X = 0
66	X = 0
67	X = 0
68	X = 0
69	X = 0
70	X = 0
71	X = 0
72	X = 0
73	X = 0
74	X = 0
75	X = 0
76	X = 0
77	X = 0
78	X = 0
79	X = 0
80	X = 0
81	X = 0 // used 64 times
82	X = 0
83	X = 0
84	X = 0
85	X = 0
86	X = 0
87	X = 0
88	X = 0
89	X = 0
90	X = 0
91	X = 0
92	X = 0
93	X = 0
94	X = 0
95	X = 0
96	X = 0
97	X = 0
98	X = 0
99	X = 0
100	X = 0
101	X = 0
102	X = 0
103	X = 0
104	X = 0
105	X = 0
106	X = 0
107	X = 0
108	X = 0
109	X = 0
110	X = 0
111	X = 0
112	X = 0
113	X = 0
114	X = 0
115	X = 0
116	X = 0
117	X = 0
118	X = 0
119	X = 0
120	X = 0
121	X = 0 // used 96 times
122	X = 0
123	X = 0
124	X = 0
125	X = 0
126	X = 0
127	X = 0
128	X = 0
129	X = 0
130	X = 0
131	X = 0
132	X = 0
133	X = 0
134	X = 0
135	X = 0
136	X = 0
137	X = 0
138	X = 0
139	X = 0
140	X = 0
141	X = 0
142	X = 0
143	X = 0
144	X = 0
145	X = 0 // used 128 times
146	X = 0
147	X = 0
148	X = 0
149	X = 0
150	X = 0
151	X = 0
152	X = 0
153	X = 0
154	X = 0
155	X = 0
156	X = 0
157	X = 0
158	X = 0
159	X = 0
160	X = 0
161	X = 0
162	X = 0
163	X = 0
164	X = 0
165	X = 0
166	X = 0
167	X = 0
168	X = 0
169	X = 0
170	X = 0
171	X = 0
172	X = 0
173	X = 0
174	X = 0
175	X = 0
176	X = 0
177	X = 0
178	X = 0
179	X = 0
180	X = 0
181	X = 0
182	X = 0
183	X = 0
184	X = 0
185	X = 0
186	X = 0
187	X = 0
188	X = 0
189	X = 0
190	X = 0
191	X = 0
192	X = 0
193	X = 0
194	X = 0
195	X = 0
196	X = 0
197	X = 0
198	X = 0
199	X = 0
200	X = 0
201	X = 0
202	X = 0
203	X = 0
204	X = 0
205	X = 0
206	X = 0
207	X = 0
208	X = 0
209	X = 0 // used 200 times
210	X = 0
211	X = 0
212	X = 0
213	X = 0
214	X = 0
215	X = 0
216	X = 0
217	X = 0
218	X = 0
219	X = 0
220	X = 0
221	X = 0
222	X = 0
223	X = 0
224	X = 0
225	X = 0
226	X = 0
227	X = 0
228	X = 0
229	X = 0
230	X = 0
231	X = 0
232	X = 0
233	X = 0
234	X = 0
235	X = 0
236	X = 0
237	X = 0
238	X = 0
239	X = 0
240	X = 0
241	X = 0
242	X = 0
243	X = 0
244	X = 0
245	X = 0
246	X = 0
247	X = 0
248	X = 0
249	X = 0
250	X = 0
251	X = 0
252	X = 0
253	X = 0
254	X = 0
255	X = 0
256	X = 0
257	X = 0
258	X = 0
259	X = 0
260	X = 0
261	X = 0
262	X = 0
263	X = 0
264	X = 0
265	X = 0
266	X = 0
267	X = 0
268	X = 0
269	X = 0
270	X = 0
271	X = 0
272	X = 0
273	X = 0 // used 256 times
274	if arg != 1 {
275		panic("argument was changed")
276	}
277}
278