[Mesa-dev] [PATCH] glsl: Fix segfault when lhs is error_type TCS

Timothy Arceri timothy.arceri at collabora.com
Wed Mar 9 06:54:32 UTC 2016


On Wed, 2016-03-09 at 17:02 +1100, Timothy Arceri wrote:
> It seem expected that both lhs and rhs could be of type error_type
> in this code however the TCS wasn't expecting it.

I'll fix that commit message :P

It seems expected that both lhs and rhs can be of type error_type in
this code however the TCS case wasn't expecting it.

> 
> Fixes segfault in an enhanced layouts GL CTS test.
> ---
>  src/compiler/glsl/ast_to_hir.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/compiler/glsl/ast_to_hir.cpp
> b/src/compiler/glsl/ast_to_hir.cpp
> index bea723b..68f44f2 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -803,7 +803,7 @@ validate_assignment(struct _mesa_glsl_parse_state
> *state,
>      * if the expression indicating the vertex number is not the
> identifier
>      * `gl_InvocationID`.
>      */
> -   if (state->stage == MESA_SHADER_TESS_CTRL) {
> +   if (state->stage == MESA_SHADER_TESS_CTRL && !lhs->type-
> >is_error()) {
>        ir_variable *var = lhs->variable_referenced();
>        if (var->data.mode == ir_var_shader_out && !var->data.patch) {
>           ir_rvalue *index = find_innermost_array_index(lhs);


More information about the mesa-dev mailing list