From: Ian Romanick Date: Wed, 23 Jun 2010 20:58:34 +0000 (-0700) Subject: Generate errors for empty constructors instead of asserting X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fa455fc2a529d26a0e03b9ff837a554c511cee71;p=mesa.git Generate errors for empty constructors instead of asserting This causes the following tests to pass: glslparsertest/glsl2/constructor-10.vert --- diff --git a/ast_function.cpp b/ast_function.cpp index 691e6aeba00..ff2dfa502f3 100644 --- a/ast_function.cpp +++ b/ast_function.cpp @@ -513,7 +513,14 @@ ast_function_expression::hir(exec_list *instructions, bool all_parameters_are_constant = true; - assert(!this->expressions.is_empty()); + /* This handles invalid constructor calls such as 'vec4 v = vec4();' + */ + if (this->expressions.is_empty()) { + _mesa_glsl_error(& loc, state, "too few components to construct " + "`%s'", + constructor_type->name); + return ir_call::get_error_instruction(); + } foreach_list (n, &this->expressions) { ast_node *ast = exec_node_data(ast_node, n, link);