From fa455fc2a529d26a0e03b9ff837a554c511cee71 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 23 Jun 2010 13:58:34 -0700 Subject: [PATCH] Generate errors for empty constructors instead of asserting This causes the following tests to pass: glslparsertest/glsl2/constructor-10.vert --- ast_function.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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); -- 2.30.2