From ebbf14b9801d577adf40dcb0b63df2d3b8da934e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 31 Mar 2010 17:05:32 -1000 Subject: [PATCH] Fix error handling of logic operators. They were always throwing a type error because type wasn't being set. --- ast_to_hir.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp index 5d7c073ca90..79e04ee7960 100644 --- a/ast_to_hir.cpp +++ b/ast_to_hir.cpp @@ -736,6 +736,7 @@ ast_expression::hir(exec_list *instructions, _mesa_glsl_error(& loc, state, "LHS of `%s' must be scalar boolean", operator_string(this->oper)); + error_emitted = true; } if (!op[1]->type->is_boolean() || !op[1]->type->is_scalar()) { @@ -743,10 +744,12 @@ ast_expression::hir(exec_list *instructions, _mesa_glsl_error(& loc, state, "RHS of `%s' must be scalar boolean", operator_string(this->oper)); + error_emitted = true; } result = new ir_expression(operations[this->oper], glsl_type::bool_type, op[0], op[1]); + type = glsl_type::bool_type; break; case ast_logic_not: @@ -757,10 +760,12 @@ ast_expression::hir(exec_list *instructions, _mesa_glsl_error(& loc, state, "operand of `!' must be scalar boolean"); + error_emitted = true; } result = new ir_expression(operations[this->oper], glsl_type::bool_type, op[0], NULL); + type = glsl_type::bool_type; break; case ast_mul_assign: -- 2.30.2