Browse Source

Generate errors for empty constructors instead of asserting

This causes the following tests to pass:

     glslparsertest/glsl2/constructor-10.vert
tags/mesa-7.9-rc1
Ian Romanick 15 years ago
parent
commit
fa455fc2a5
1 changed files with 8 additions and 1 deletions
  1. 8
    1
      ast_function.cpp

+ 8
- 1
ast_function.cpp View File

@@ -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);

Loading…
Cancel
Save