glsl: Remove some unnecessary uses of error_emitted
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 15 Mar 2013 21:27:22 +0000 (14:27 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 8 Apr 2013 22:17:05 +0000 (15:17 -0700)
commit666fafc144c254705d490915b6e150025780a87a
tree65eba376e5668b294748e784b43c3e1b2d162135
parent46934adb8d855a9505f2231ba3f1ad5449b896a4
glsl: Remove some unnecessary uses of error_emitted

The error_emitted flag is used in semantic checking to prevent spurious
cascading errors.  For example,

void foo(sampler2D s, float a)
{
    float x = a + (1.2 + s);

    ...
}

should only generate a single error.  Without the error_emitted flag for
the first error, "a + ..." would also generate an error.

However, a bunch of cases in _mesa_ast_array_index_to_hir that were
setting error_emitted would mask legitimate errors.  For example,

    vec4 a[7];
    float b = a[3.14];

should generate two error (float index and type mismatch in assignment).
The uses of error_emitted would cause only the first to be emitted.

This patch removes most of the places in _mesa_ast_array_index_to_hir
that would set the error_emitted flag.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/ast_array_index.cpp