nir/print: Better function argument printing
Since we aren't going to put the function parameters or the return variable in the list of locals, it won't get a proper declaration. This changes nir_print to print the type along with each parameter or return variable. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
@@ -379,6 +379,14 @@ print_var(nir_variable *var, print_state *state)
|
|||||||
fprintf(fp, "%s", get_var_name(var, state));
|
fprintf(fp, "%s", get_var_name(var, state));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_arg(nir_variable *var, print_state *state)
|
||||||
|
{
|
||||||
|
FILE *fp = state->fp;
|
||||||
|
glsl_print_type(var->type, fp);
|
||||||
|
fprintf(fp, " %s", get_var_name(var, state));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_deref_var(nir_deref_var *deref, print_state *state)
|
print_deref_var(nir_deref_var *deref, print_state *state)
|
||||||
{
|
{
|
||||||
@@ -938,14 +946,14 @@ print_function_impl(nir_function_impl *impl, print_state *state)
|
|||||||
if (i != 0)
|
if (i != 0)
|
||||||
fprintf(fp, ", ");
|
fprintf(fp, ", ");
|
||||||
|
|
||||||
print_var(impl->params[i], state);
|
print_arg(impl->params[i], state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (impl->return_var != NULL) {
|
if (impl->return_var != NULL) {
|
||||||
if (impl->num_params != 0)
|
if (impl->num_params != 0)
|
||||||
fprintf(fp, ", ");
|
fprintf(fp, ", ");
|
||||||
fprintf(fp, "returning ");
|
fprintf(fp, "returning ");
|
||||||
print_var(impl->return_var, state);
|
print_arg(impl->return_var, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(fp, "{\n");
|
fprintf(fp, "{\n");
|
||||||
|
Reference in New Issue
Block a user