Set, and require, a return type for function signatures
This commit is contained in:
parent
7563b50075
commit
e39cc69fa3
|
@ -1006,6 +1006,13 @@ ast_function_definition::hir(exec_list *instructions,
|
|||
ast_function_parameters_to_hir(& this->prototype->parameters, & parameters,
|
||||
state);
|
||||
|
||||
const char *return_type_name;
|
||||
const glsl_type *return_type =
|
||||
type_specifier_to_glsl_type(this->prototype->return_type->specifier,
|
||||
& return_type_name, state);
|
||||
|
||||
assert(return_type != NULL);
|
||||
|
||||
|
||||
/* Verify that this function's signature either doesn't match a previously
|
||||
* seen signature for a function with the same name, or, if a match is found,
|
||||
|
@ -1056,7 +1063,7 @@ ast_function_definition::hir(exec_list *instructions,
|
|||
/* Finish storing the information about this new function in its signature.
|
||||
*/
|
||||
if (signature == NULL) {
|
||||
signature = new ir_function_signature();
|
||||
signature = new ir_function_signature(return_type);
|
||||
f->signatures.push_tail(signature);
|
||||
} else {
|
||||
/* Destroy all of the previous parameter information. The previous
|
||||
|
|
4
ir.cpp
4
ir.cpp
|
@ -96,8 +96,8 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name)
|
|||
}
|
||||
|
||||
|
||||
ir_function_signature::ir_function_signature(void)
|
||||
: ir_instruction(ir_op_func_sig)
|
||||
ir_function_signature::ir_function_signature(const glsl_type *return_type)
|
||||
: ir_instruction(ir_op_func_sig), return_type(return_type), definition(NULL)
|
||||
{
|
||||
/* empty */
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue