1e5c31af7Sopenharmony_cigroup valid "Valid scoping and name redeclaration cases"
2e5c31af7Sopenharmony_ci
3e5c31af7Sopenharmony_ci	case local_variable_hides_global_variable
4e5c31af7Sopenharmony_ci		version 310 es
5e5c31af7Sopenharmony_ci		values
6e5c31af7Sopenharmony_ci		{
7e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
8e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
9e5c31af7Sopenharmony_ci		}
10e5c31af7Sopenharmony_ci
11e5c31af7Sopenharmony_ci		both ""
12e5c31af7Sopenharmony_ci			#version 310 es
13e5c31af7Sopenharmony_ci			precision highp float;
14e5c31af7Sopenharmony_ci			precision highp int;
15e5c31af7Sopenharmony_ci			${DECLARATIONS}
16e5c31af7Sopenharmony_ci
17e5c31af7Sopenharmony_ci			int a = -1;
18e5c31af7Sopenharmony_ci
19e5c31af7Sopenharmony_ci			void main()
20e5c31af7Sopenharmony_ci			{
21e5c31af7Sopenharmony_ci				${SETUP}
22e5c31af7Sopenharmony_ci				int a = in0;
23e5c31af7Sopenharmony_ci
24e5c31af7Sopenharmony_ci				out0 = a;
25e5c31af7Sopenharmony_ci				${OUTPUT}
26e5c31af7Sopenharmony_ci			}
27e5c31af7Sopenharmony_ci		""
28e5c31af7Sopenharmony_ci	end
29e5c31af7Sopenharmony_ci
30e5c31af7Sopenharmony_ci	case block_variable_hides_local_variable
31e5c31af7Sopenharmony_ci		version 310 es
32e5c31af7Sopenharmony_ci		values
33e5c31af7Sopenharmony_ci		{
34e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
35e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
36e5c31af7Sopenharmony_ci		}
37e5c31af7Sopenharmony_ci
38e5c31af7Sopenharmony_ci		both ""
39e5c31af7Sopenharmony_ci			#version 310 es
40e5c31af7Sopenharmony_ci			precision highp float;
41e5c31af7Sopenharmony_ci			precision highp int;
42e5c31af7Sopenharmony_ci			${DECLARATIONS}
43e5c31af7Sopenharmony_ci			void main()
44e5c31af7Sopenharmony_ci			{
45e5c31af7Sopenharmony_ci				${SETUP}
46e5c31af7Sopenharmony_ci				int a = in0;
47e5c31af7Sopenharmony_ci				{
48e5c31af7Sopenharmony_ci					int a = -1;
49e5c31af7Sopenharmony_ci				}
50e5c31af7Sopenharmony_ci				out0 = a;
51e5c31af7Sopenharmony_ci				${OUTPUT}
52e5c31af7Sopenharmony_ci			}
53e5c31af7Sopenharmony_ci		""
54e5c31af7Sopenharmony_ci	end
55e5c31af7Sopenharmony_ci
56e5c31af7Sopenharmony_ci	case block_variable_hides_global_variable
57e5c31af7Sopenharmony_ci		version 310 es
58e5c31af7Sopenharmony_ci		values
59e5c31af7Sopenharmony_ci		{
60e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
61e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
62e5c31af7Sopenharmony_ci		}
63e5c31af7Sopenharmony_ci
64e5c31af7Sopenharmony_ci		both ""
65e5c31af7Sopenharmony_ci			#version 310 es
66e5c31af7Sopenharmony_ci			precision highp float;
67e5c31af7Sopenharmony_ci			precision highp int;
68e5c31af7Sopenharmony_ci			${DECLARATIONS}
69e5c31af7Sopenharmony_ci
70e5c31af7Sopenharmony_ci			int a = -1;
71e5c31af7Sopenharmony_ci
72e5c31af7Sopenharmony_ci			void main()
73e5c31af7Sopenharmony_ci			{
74e5c31af7Sopenharmony_ci				${SETUP}
75e5c31af7Sopenharmony_ci				{
76e5c31af7Sopenharmony_ci					int a = in0;
77e5c31af7Sopenharmony_ci
78e5c31af7Sopenharmony_ci					out0 = a;
79e5c31af7Sopenharmony_ci				}
80e5c31af7Sopenharmony_ci				${OUTPUT}
81e5c31af7Sopenharmony_ci			}
82e5c31af7Sopenharmony_ci		""
83e5c31af7Sopenharmony_ci	end
84e5c31af7Sopenharmony_ci
85e5c31af7Sopenharmony_ci	case for_init_statement_variable_hides_local_variable
86e5c31af7Sopenharmony_ci		version 310 es
87e5c31af7Sopenharmony_ci		values
88e5c31af7Sopenharmony_ci		{
89e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
90e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
91e5c31af7Sopenharmony_ci		}
92e5c31af7Sopenharmony_ci
93e5c31af7Sopenharmony_ci		both ""
94e5c31af7Sopenharmony_ci			#version 310 es
95e5c31af7Sopenharmony_ci			precision highp float;
96e5c31af7Sopenharmony_ci			precision highp int;
97e5c31af7Sopenharmony_ci			${DECLARATIONS}
98e5c31af7Sopenharmony_ci			void main()
99e5c31af7Sopenharmony_ci			{
100e5c31af7Sopenharmony_ci				${SETUP}
101e5c31af7Sopenharmony_ci				int a = in0;
102e5c31af7Sopenharmony_ci				for (int a = 0; a < 10; a++)
103e5c31af7Sopenharmony_ci				{
104e5c31af7Sopenharmony_ci				}
105e5c31af7Sopenharmony_ci				out0 = a;
106e5c31af7Sopenharmony_ci				${OUTPUT}
107e5c31af7Sopenharmony_ci			}
108e5c31af7Sopenharmony_ci		""
109e5c31af7Sopenharmony_ci	end
110e5c31af7Sopenharmony_ci
111e5c31af7Sopenharmony_ci	case while_condition_variable_hides_local_variable
112e5c31af7Sopenharmony_ci		version 310 es
113e5c31af7Sopenharmony_ci		values
114e5c31af7Sopenharmony_ci		{
115e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
116e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
117e5c31af7Sopenharmony_ci		}
118e5c31af7Sopenharmony_ci
119e5c31af7Sopenharmony_ci		both ""
120e5c31af7Sopenharmony_ci			#version 310 es
121e5c31af7Sopenharmony_ci			precision highp float;
122e5c31af7Sopenharmony_ci			precision highp int;
123e5c31af7Sopenharmony_ci			${DECLARATIONS}
124e5c31af7Sopenharmony_ci			void main()
125e5c31af7Sopenharmony_ci			{
126e5c31af7Sopenharmony_ci				${SETUP}
127e5c31af7Sopenharmony_ci				int a = in0;
128e5c31af7Sopenharmony_ci				int i = 0;
129e5c31af7Sopenharmony_ci				while (bool a = (i < 1))
130e5c31af7Sopenharmony_ci				{
131e5c31af7Sopenharmony_ci					i++;
132e5c31af7Sopenharmony_ci				}
133e5c31af7Sopenharmony_ci				out0 = a;
134e5c31af7Sopenharmony_ci				${OUTPUT}
135e5c31af7Sopenharmony_ci			}
136e5c31af7Sopenharmony_ci		""
137e5c31af7Sopenharmony_ci	end
138e5c31af7Sopenharmony_ci
139e5c31af7Sopenharmony_ci	case for_init_statement_variable_hides_global_variable
140e5c31af7Sopenharmony_ci		version 310 es
141e5c31af7Sopenharmony_ci		values
142e5c31af7Sopenharmony_ci		{
143e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
144e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
145e5c31af7Sopenharmony_ci		}
146e5c31af7Sopenharmony_ci
147e5c31af7Sopenharmony_ci		both ""
148e5c31af7Sopenharmony_ci			#version 310 es
149e5c31af7Sopenharmony_ci			precision highp float;
150e5c31af7Sopenharmony_ci			precision highp int;
151e5c31af7Sopenharmony_ci			${DECLARATIONS}
152e5c31af7Sopenharmony_ci
153e5c31af7Sopenharmony_ci			int a = 5;
154e5c31af7Sopenharmony_ci
155e5c31af7Sopenharmony_ci			void main()
156e5c31af7Sopenharmony_ci			{
157e5c31af7Sopenharmony_ci				${SETUP}
158e5c31af7Sopenharmony_ci				for (int a = 0; a < 10; a++)
159e5c31af7Sopenharmony_ci				{
160e5c31af7Sopenharmony_ci				}
161e5c31af7Sopenharmony_ci				out0 = in0 + a - 5;
162e5c31af7Sopenharmony_ci				${OUTPUT}
163e5c31af7Sopenharmony_ci			}
164e5c31af7Sopenharmony_ci		""
165e5c31af7Sopenharmony_ci	end
166e5c31af7Sopenharmony_ci
167e5c31af7Sopenharmony_ci	case while_condition_variable_hides_global_variable
168e5c31af7Sopenharmony_ci		version 310 es
169e5c31af7Sopenharmony_ci		values
170e5c31af7Sopenharmony_ci		{
171e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
172e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
173e5c31af7Sopenharmony_ci		}
174e5c31af7Sopenharmony_ci
175e5c31af7Sopenharmony_ci		both ""
176e5c31af7Sopenharmony_ci			#version 310 es
177e5c31af7Sopenharmony_ci			precision highp float;
178e5c31af7Sopenharmony_ci			precision highp int;
179e5c31af7Sopenharmony_ci			${DECLARATIONS}
180e5c31af7Sopenharmony_ci
181e5c31af7Sopenharmony_ci			int a = 5;
182e5c31af7Sopenharmony_ci
183e5c31af7Sopenharmony_ci			void main()
184e5c31af7Sopenharmony_ci			{
185e5c31af7Sopenharmony_ci				${SETUP}
186e5c31af7Sopenharmony_ci				int i = 0;
187e5c31af7Sopenharmony_ci				while (bool a = (i < 1))
188e5c31af7Sopenharmony_ci				{
189e5c31af7Sopenharmony_ci					i++;
190e5c31af7Sopenharmony_ci				}
191e5c31af7Sopenharmony_ci				out0 = in0 + a - 5;
192e5c31af7Sopenharmony_ci				${OUTPUT}
193e5c31af7Sopenharmony_ci			}
194e5c31af7Sopenharmony_ci		""
195e5c31af7Sopenharmony_ci	end
196e5c31af7Sopenharmony_ci
197e5c31af7Sopenharmony_ci	case variable_in_if_hides_global_variable
198e5c31af7Sopenharmony_ci		version 310 es
199e5c31af7Sopenharmony_ci		values
200e5c31af7Sopenharmony_ci		{
201e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
202e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
203e5c31af7Sopenharmony_ci		}
204e5c31af7Sopenharmony_ci
205e5c31af7Sopenharmony_ci		both ""
206e5c31af7Sopenharmony_ci			#version 310 es
207e5c31af7Sopenharmony_ci			precision highp float;
208e5c31af7Sopenharmony_ci			precision highp int;
209e5c31af7Sopenharmony_ci			${DECLARATIONS}
210e5c31af7Sopenharmony_ci
211e5c31af7Sopenharmony_ci			int a = 1;
212e5c31af7Sopenharmony_ci
213e5c31af7Sopenharmony_ci			void main()
214e5c31af7Sopenharmony_ci			{
215e5c31af7Sopenharmony_ci				${SETUP}
216e5c31af7Sopenharmony_ci				if (true)
217e5c31af7Sopenharmony_ci					int a = 42;
218e5c31af7Sopenharmony_ci				out0 = a*in0;
219e5c31af7Sopenharmony_ci				${OUTPUT}
220e5c31af7Sopenharmony_ci			}
221e5c31af7Sopenharmony_ci		""
222e5c31af7Sopenharmony_ci	end
223e5c31af7Sopenharmony_ci
224e5c31af7Sopenharmony_ci	case variable_from_outer_scope_visible_in_initializer
225e5c31af7Sopenharmony_ci		version 310 es
226e5c31af7Sopenharmony_ci		values
227e5c31af7Sopenharmony_ci		{
228e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
229e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
230e5c31af7Sopenharmony_ci		}
231e5c31af7Sopenharmony_ci
232e5c31af7Sopenharmony_ci		both ""
233e5c31af7Sopenharmony_ci			#version 310 es
234e5c31af7Sopenharmony_ci			precision highp float;
235e5c31af7Sopenharmony_ci			precision highp int;
236e5c31af7Sopenharmony_ci			${DECLARATIONS}
237e5c31af7Sopenharmony_ci			void main()
238e5c31af7Sopenharmony_ci			{
239e5c31af7Sopenharmony_ci				${SETUP}
240e5c31af7Sopenharmony_ci				int a = in0;
241e5c31af7Sopenharmony_ci				{
242e5c31af7Sopenharmony_ci					int a = a+5, b = a-5;
243e5c31af7Sopenharmony_ci					out0 = b;
244e5c31af7Sopenharmony_ci					a = 42;
245e5c31af7Sopenharmony_ci				}
246e5c31af7Sopenharmony_ci				out0 = out0 + a - in0;
247e5c31af7Sopenharmony_ci				${OUTPUT}
248e5c31af7Sopenharmony_ci			}
249e5c31af7Sopenharmony_ci		""
250e5c31af7Sopenharmony_ci	end
251e5c31af7Sopenharmony_ci
252e5c31af7Sopenharmony_ci	case local_int_variable_hides_struct_type
253e5c31af7Sopenharmony_ci		version 310 es
254e5c31af7Sopenharmony_ci		values
255e5c31af7Sopenharmony_ci		{
256e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
257e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
258e5c31af7Sopenharmony_ci		}
259e5c31af7Sopenharmony_ci
260e5c31af7Sopenharmony_ci		both ""
261e5c31af7Sopenharmony_ci			#version 310 es
262e5c31af7Sopenharmony_ci			precision highp float;
263e5c31af7Sopenharmony_ci			precision highp int;
264e5c31af7Sopenharmony_ci			${DECLARATIONS}
265e5c31af7Sopenharmony_ci
266e5c31af7Sopenharmony_ci			struct S { int val; };
267e5c31af7Sopenharmony_ci
268e5c31af7Sopenharmony_ci			void main()
269e5c31af7Sopenharmony_ci			{
270e5c31af7Sopenharmony_ci				${SETUP}
271e5c31af7Sopenharmony_ci				int S = S(in0).val;
272e5c31af7Sopenharmony_ci				out0 = S;
273e5c31af7Sopenharmony_ci				${OUTPUT}
274e5c31af7Sopenharmony_ci			}
275e5c31af7Sopenharmony_ci		""
276e5c31af7Sopenharmony_ci	end
277e5c31af7Sopenharmony_ci
278e5c31af7Sopenharmony_ci	case local_struct_variable_hides_struct_type
279e5c31af7Sopenharmony_ci		version 310 es
280e5c31af7Sopenharmony_ci		values
281e5c31af7Sopenharmony_ci		{
282e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
283e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
284e5c31af7Sopenharmony_ci		}
285e5c31af7Sopenharmony_ci
286e5c31af7Sopenharmony_ci		both ""
287e5c31af7Sopenharmony_ci			#version 310 es
288e5c31af7Sopenharmony_ci			precision highp float;
289e5c31af7Sopenharmony_ci			precision highp int;
290e5c31af7Sopenharmony_ci			${DECLARATIONS}
291e5c31af7Sopenharmony_ci
292e5c31af7Sopenharmony_ci			struct S { int val; };
293e5c31af7Sopenharmony_ci
294e5c31af7Sopenharmony_ci			void main()
295e5c31af7Sopenharmony_ci			{
296e5c31af7Sopenharmony_ci				${SETUP}
297e5c31af7Sopenharmony_ci				S S = S(in0);
298e5c31af7Sopenharmony_ci				out0 = S.val;
299e5c31af7Sopenharmony_ci				${OUTPUT}
300e5c31af7Sopenharmony_ci			}
301e5c31af7Sopenharmony_ci		""
302e5c31af7Sopenharmony_ci	end
303e5c31af7Sopenharmony_ci
304e5c31af7Sopenharmony_ci	case local_variable_hides_function
305e5c31af7Sopenharmony_ci		version 310 es
306e5c31af7Sopenharmony_ci		values
307e5c31af7Sopenharmony_ci		{
308e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
309e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
310e5c31af7Sopenharmony_ci		}
311e5c31af7Sopenharmony_ci
312e5c31af7Sopenharmony_ci		both ""
313e5c31af7Sopenharmony_ci			#version 310 es
314e5c31af7Sopenharmony_ci			precision highp float;
315e5c31af7Sopenharmony_ci			precision highp int;
316e5c31af7Sopenharmony_ci			${DECLARATIONS}
317e5c31af7Sopenharmony_ci
318e5c31af7Sopenharmony_ci			int foo (int x) { return x; }
319e5c31af7Sopenharmony_ci
320e5c31af7Sopenharmony_ci			void main()
321e5c31af7Sopenharmony_ci			{
322e5c31af7Sopenharmony_ci				${SETUP}
323e5c31af7Sopenharmony_ci				int foo = in0;
324e5c31af7Sopenharmony_ci				out0 = foo;
325e5c31af7Sopenharmony_ci				${OUTPUT}
326e5c31af7Sopenharmony_ci			}
327e5c31af7Sopenharmony_ci		""
328e5c31af7Sopenharmony_ci	end
329e5c31af7Sopenharmony_ci
330e5c31af7Sopenharmony_ci	case function_parameter_hides_global_variable
331e5c31af7Sopenharmony_ci		version 310 es
332e5c31af7Sopenharmony_ci		values
333e5c31af7Sopenharmony_ci		{
334e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
335e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
336e5c31af7Sopenharmony_ci		}
337e5c31af7Sopenharmony_ci
338e5c31af7Sopenharmony_ci		both ""
339e5c31af7Sopenharmony_ci			#version 310 es
340e5c31af7Sopenharmony_ci			precision highp float;
341e5c31af7Sopenharmony_ci			precision highp int;
342e5c31af7Sopenharmony_ci			${DECLARATIONS}
343e5c31af7Sopenharmony_ci
344e5c31af7Sopenharmony_ci			int a = -1;
345e5c31af7Sopenharmony_ci
346e5c31af7Sopenharmony_ci			int func (int a) { return a; }
347e5c31af7Sopenharmony_ci
348e5c31af7Sopenharmony_ci			void main()
349e5c31af7Sopenharmony_ci			{
350e5c31af7Sopenharmony_ci				${SETUP}
351e5c31af7Sopenharmony_ci				out0 = func(in0);
352e5c31af7Sopenharmony_ci				${OUTPUT}
353e5c31af7Sopenharmony_ci			}
354e5c31af7Sopenharmony_ci		""
355e5c31af7Sopenharmony_ci	end
356e5c31af7Sopenharmony_ci
357e5c31af7Sopenharmony_ci	case function_parameter_hides_struct_type
358e5c31af7Sopenharmony_ci		version 310 es
359e5c31af7Sopenharmony_ci		values
360e5c31af7Sopenharmony_ci		{
361e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
362e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
363e5c31af7Sopenharmony_ci		}
364e5c31af7Sopenharmony_ci
365e5c31af7Sopenharmony_ci		both ""
366e5c31af7Sopenharmony_ci			#version 310 es
367e5c31af7Sopenharmony_ci			precision highp float;
368e5c31af7Sopenharmony_ci			precision highp int;
369e5c31af7Sopenharmony_ci			${DECLARATIONS}
370e5c31af7Sopenharmony_ci
371e5c31af7Sopenharmony_ci			struct S { int x; };
372e5c31af7Sopenharmony_ci
373e5c31af7Sopenharmony_ci			int func (int S) { return S; }
374e5c31af7Sopenharmony_ci
375e5c31af7Sopenharmony_ci			void main()
376e5c31af7Sopenharmony_ci			{
377e5c31af7Sopenharmony_ci				${SETUP}
378e5c31af7Sopenharmony_ci				out0 = func(in0);
379e5c31af7Sopenharmony_ci				${OUTPUT}
380e5c31af7Sopenharmony_ci			}
381e5c31af7Sopenharmony_ci		""
382e5c31af7Sopenharmony_ci	end
383e5c31af7Sopenharmony_ci
384e5c31af7Sopenharmony_ci	case function_parameter_hides_function
385e5c31af7Sopenharmony_ci		version 310 es
386e5c31af7Sopenharmony_ci		values
387e5c31af7Sopenharmony_ci		{
388e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
389e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
390e5c31af7Sopenharmony_ci		}
391e5c31af7Sopenharmony_ci
392e5c31af7Sopenharmony_ci		both ""
393e5c31af7Sopenharmony_ci			#version 310 es
394e5c31af7Sopenharmony_ci			precision highp float;
395e5c31af7Sopenharmony_ci			precision highp int;
396e5c31af7Sopenharmony_ci			${DECLARATIONS}
397e5c31af7Sopenharmony_ci
398e5c31af7Sopenharmony_ci			int func (int func) { return func; }
399e5c31af7Sopenharmony_ci
400e5c31af7Sopenharmony_ci			void main()
401e5c31af7Sopenharmony_ci			{
402e5c31af7Sopenharmony_ci				${SETUP}
403e5c31af7Sopenharmony_ci				out0 = func(in0);
404e5c31af7Sopenharmony_ci				${OUTPUT}
405e5c31af7Sopenharmony_ci			}
406e5c31af7Sopenharmony_ci		""
407e5c31af7Sopenharmony_ci	end
408e5c31af7Sopenharmony_ci
409e5c31af7Sopenharmony_ci	case local_variable_in_inner_scope_hides_function_parameter
410e5c31af7Sopenharmony_ci		version 310 es
411e5c31af7Sopenharmony_ci		values
412e5c31af7Sopenharmony_ci		{
413e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
414e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
415e5c31af7Sopenharmony_ci		}
416e5c31af7Sopenharmony_ci
417e5c31af7Sopenharmony_ci		both ""
418e5c31af7Sopenharmony_ci			#version 310 es
419e5c31af7Sopenharmony_ci			precision highp float;
420e5c31af7Sopenharmony_ci			precision highp int;
421e5c31af7Sopenharmony_ci			${DECLARATIONS}
422e5c31af7Sopenharmony_ci			int func (int inp, int x) { { int x = 5; return inp + x - 5; } }
423e5c31af7Sopenharmony_ci
424e5c31af7Sopenharmony_ci			void main()
425e5c31af7Sopenharmony_ci			{
426e5c31af7Sopenharmony_ci				${SETUP}
427e5c31af7Sopenharmony_ci				out0 = func(in0, 42);
428e5c31af7Sopenharmony_ci				${OUTPUT}
429e5c31af7Sopenharmony_ci			}
430e5c31af7Sopenharmony_ci		""
431e5c31af7Sopenharmony_ci	end
432e5c31af7Sopenharmony_ci
433e5c31af7Sopenharmony_ci	case redeclare_function
434e5c31af7Sopenharmony_ci		version 310 es
435e5c31af7Sopenharmony_ci		values
436e5c31af7Sopenharmony_ci		{
437e5c31af7Sopenharmony_ci			input int in0 = [ 1 | 2 | 3 ];
438e5c31af7Sopenharmony_ci			output int out0 = [ 1 | 2 | 3 ];
439e5c31af7Sopenharmony_ci		}
440e5c31af7Sopenharmony_ci
441e5c31af7Sopenharmony_ci		both ""
442e5c31af7Sopenharmony_ci			#version 310 es
443e5c31af7Sopenharmony_ci			precision highp float;
444e5c31af7Sopenharmony_ci			precision highp int;
445e5c31af7Sopenharmony_ci			${DECLARATIONS}
446e5c31af7Sopenharmony_ci
447e5c31af7Sopenharmony_ci			int func (int x);
448e5c31af7Sopenharmony_ci			int func (int);
449e5c31af7Sopenharmony_ci			int func (int inp) { return inp; }
450e5c31af7Sopenharmony_ci
451e5c31af7Sopenharmony_ci			void main()
452e5c31af7Sopenharmony_ci			{
453e5c31af7Sopenharmony_ci				${SETUP}
454e5c31af7Sopenharmony_ci				out0 = func(in0);
455e5c31af7Sopenharmony_ci				${OUTPUT}
456e5c31af7Sopenharmony_ci			}
457e5c31af7Sopenharmony_ci		""
458e5c31af7Sopenharmony_ci	end
459e5c31af7Sopenharmony_ci
460e5c31af7Sopenharmony_ciend
461