vlog95 target: better solution for void functions with no arguments.
This commit is contained in:
parent
39238fd1cd
commit
cab9526e6c
|
|
@ -995,12 +995,6 @@ int emit_scope(ivl_scope_t scope, ivl_scope_t parent)
|
||||||
unsigned is_auto = ivl_scope_is_auto(scope);
|
unsigned is_auto = ivl_scope_is_auto(scope);
|
||||||
unsigned idx;
|
unsigned idx;
|
||||||
|
|
||||||
// Convert SV void functions with no arguments to tasks. This may
|
|
||||||
// lead to errors if the function is called from another function,
|
|
||||||
// but there is no way to translate that case.
|
|
||||||
if (is_void_function(scope) && (ivl_scope_ports(scope) == 1))
|
|
||||||
sc_type = IVL_SCT_TASK;
|
|
||||||
|
|
||||||
/* Output the scope definition. */
|
/* Output the scope definition. */
|
||||||
switch (sc_type) {
|
switch (sc_type) {
|
||||||
case IVL_SCT_MODULE:
|
case IVL_SCT_MODULE:
|
||||||
|
|
|
||||||
|
|
@ -1433,7 +1433,11 @@ static void emit_stmt_utask(ivl_scope_t scope, ivl_statement_t stmt)
|
||||||
|| (is_void_function(task_scope)
|
|| (is_void_function(task_scope)
|
||||||
&& ivl_scope_ports(task_scope) == 1));
|
&& ivl_scope_ports(task_scope) == 1));
|
||||||
fprintf(vlog_out, "%*c", get_indent(), ' ');
|
fprintf(vlog_out, "%*c", get_indent(), ' ');
|
||||||
|
if (is_void_function(task_scope))
|
||||||
|
fprintf(vlog_out, "if (");
|
||||||
emit_scope_path(scope, task_scope);
|
emit_scope_path(scope, task_scope);
|
||||||
|
if (is_void_function(task_scope))
|
||||||
|
fprintf(vlog_out, "(1'bx))");
|
||||||
fprintf(vlog_out, ";");
|
fprintf(vlog_out, ";");
|
||||||
emit_stmt_file_line(stmt);
|
emit_stmt_file_line(stmt);
|
||||||
fprintf(vlog_out, "\n");
|
fprintf(vlog_out, "\n");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue