461 lines
9.8 KiB
Plaintext
461 lines
9.8 KiB
Plaintext
group valid "Valid scoping and name redeclaration cases"
|
|
|
|
case local_variable_hides_global_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int a = -1;
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int a = in0;
|
|
|
|
out0 = a;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case block_variable_hides_local_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int a = in0;
|
|
{
|
|
int a = -1;
|
|
}
|
|
out0 = a;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case block_variable_hides_global_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int a = -1;
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
{
|
|
int a = in0;
|
|
|
|
out0 = a;
|
|
}
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case for_init_statement_variable_hides_local_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int a = in0;
|
|
for (int a = 0; a < 10; a++)
|
|
{
|
|
}
|
|
out0 = a;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case while_condition_variable_hides_local_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int a = in0;
|
|
int i = 0;
|
|
while (bool a = (i < 1))
|
|
{
|
|
i++;
|
|
}
|
|
out0 = a;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case for_init_statement_variable_hides_global_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int a = 5;
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
for (int a = 0; a < 10; a++)
|
|
{
|
|
}
|
|
out0 = in0 + a - 5;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case while_condition_variable_hides_global_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int a = 5;
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int i = 0;
|
|
while (bool a = (i < 1))
|
|
{
|
|
i++;
|
|
}
|
|
out0 = in0 + a - 5;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case variable_in_if_hides_global_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int a = 1;
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
if (true)
|
|
int a = 42;
|
|
out0 = a*in0;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case variable_from_outer_scope_visible_in_initializer
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int a = in0;
|
|
{
|
|
int a = a+5, b = a-5;
|
|
out0 = b;
|
|
a = 42;
|
|
}
|
|
out0 = out0 + a - in0;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case local_int_variable_hides_struct_type
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
struct S { int val; };
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int S = S(in0).val;
|
|
out0 = S;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case local_struct_variable_hides_struct_type
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
struct S { int val; };
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
S S = S(in0);
|
|
out0 = S.val;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case local_variable_hides_function
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int foo (int x) { return x; }
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
int foo = in0;
|
|
out0 = foo;
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case function_parameter_hides_global_variable
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int a = -1;
|
|
|
|
int func (int a) { return a; }
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
out0 = func(in0);
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case function_parameter_hides_struct_type
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
struct S { int x; };
|
|
|
|
int func (int S) { return S; }
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
out0 = func(in0);
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case function_parameter_hides_function
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int func (int func) { return func; }
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
out0 = func(in0);
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case local_variable_in_inner_scope_hides_function_parameter
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
int func (int inp, int x) { { int x = 5; return inp + x - 5; } }
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
out0 = func(in0, 42);
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
case redeclare_function
|
|
version 310 es
|
|
values
|
|
{
|
|
input int in0 = [ 1 | 2 | 3 ];
|
|
output int out0 = [ 1 | 2 | 3 ];
|
|
}
|
|
|
|
both ""
|
|
#version 310 es
|
|
precision highp float;
|
|
precision highp int;
|
|
${DECLARATIONS}
|
|
|
|
int func (int x);
|
|
int func (int);
|
|
int func (int inp) { return inp; }
|
|
|
|
void main()
|
|
{
|
|
${SETUP}
|
|
out0 = func(in0);
|
|
${OUTPUT}
|
|
}
|
|
""
|
|
end
|
|
|
|
end
|