glsl: Add function parameters to the parser symbol table.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 5 Mar 2016 05:19:49 +0000 (21:19 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 7 Mar 2016 22:09:55 +0000 (14:09 -0800)
commitaf41c0b7e05f8d2b4b01a1a178b2bfa209236bfe
tree3f7a9f70210a01c3cb517fda1903dfe968f8762e
parentc4960068d5d1b4f882734b0e686092a94c80c9bf
glsl: Add function parameters to the parser symbol table.

In a shader such as:

    struct S { float f; }
    float identity(float S) { return S; }

we would think that "S" in "return S" referred to a structure, even
though it's shadowed by the "float S" parameter in the inner struct.

This led to the parser's grammar seeing TYPE_IDENTIFIER and getting
confused.

Fixes dEQP-GLES2.functional.shaders.scoping.valid.
function_parameter_hides_struct_type_{vertex,fragment}.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/compiler/glsl/glsl_parser.yy