Skip to content
  • Ian Romanick's avatar
    glsl: Remove some unnecessary uses of error_emitted · 666fafc1
    Ian Romanick authored
    
    
    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: default avatarIan Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
    666fafc1