glsl: Function signatures cannot have NULL return type
The return type can be void, and this is the case where a `_ret_val' variable should not be declared.
This commit is contained in:
parent
719f07e45a
commit
2df56b002d
|
@ -198,6 +198,12 @@ ir_validate::visit_enter(ir_function_signature *ir)
|
|||
abort();
|
||||
}
|
||||
|
||||
if (ir->return_type == NULL) {
|
||||
printf("Function signature %p for function %s has NULL return type.\n",
|
||||
ir, ir->function_name());
|
||||
abort();
|
||||
}
|
||||
|
||||
this->validate_ir(ir, this->data);
|
||||
|
||||
return visit_continue;
|
||||
|
|
|
@ -126,7 +126,7 @@ ir_call::generate_inline(ir_instruction *next_ir)
|
|||
parameters = new ir_variable *[num_parameters];
|
||||
|
||||
/* Generate storage for the return value. */
|
||||
if (this->callee->return_type) {
|
||||
if (!this->callee->return_type->is_void()) {
|
||||
retval = new(ctx) ir_variable(this->callee->return_type, "_ret_val",
|
||||
ir_var_auto);
|
||||
next_ir->insert_before(retval);
|
||||
|
|
Loading…
Reference in New Issue