Add support for empty task port lists with a warning.
The standard does not allow this, but it appears that other
simulators do. This patch adds the functionality, but prints
a warning message for the invalid task definition.
(cherry picked from commit 46350da5f0)
This commit is contained in:
parent
cca3d5907c
commit
fc24624fa2
22
parse.y
22
parse.y
|
|
@ -2137,12 +2137,12 @@ module_item
|
||||||
delete[]$3;
|
delete[]$3;
|
||||||
}
|
}
|
||||||
|
|
||||||
| K_task automatic_opt IDENTIFIER
|
| K_task automatic_opt IDENTIFIER '('
|
||||||
{ assert(current_task == 0);
|
{ assert(current_task == 0);
|
||||||
current_task = pform_push_task_scope($3, $2);
|
current_task = pform_push_task_scope($3, $2);
|
||||||
FILE_NAME(current_task, @1);
|
FILE_NAME(current_task, @1);
|
||||||
}
|
}
|
||||||
'(' task_port_decl_list ')' ';'
|
task_port_decl_list ')' ';'
|
||||||
block_item_decls_opt
|
block_item_decls_opt
|
||||||
statement_or_null
|
statement_or_null
|
||||||
K_endtask
|
K_endtask
|
||||||
|
|
@ -2152,6 +2152,24 @@ module_item
|
||||||
current_task = 0;
|
current_task = 0;
|
||||||
delete[]$3;
|
delete[]$3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
| K_task automatic_opt IDENTIFIER '(' ')' ';'
|
||||||
|
{ assert(current_task == 0);
|
||||||
|
current_task = pform_push_task_scope($3, $2);
|
||||||
|
FILE_NAME(current_task, @1);
|
||||||
|
}
|
||||||
|
block_item_decls_opt
|
||||||
|
statement_or_null
|
||||||
|
K_endtask
|
||||||
|
{ current_task->set_ports(0);
|
||||||
|
current_task->set_statement($9);
|
||||||
|
pform_pop_scope();
|
||||||
|
current_task = 0;
|
||||||
|
cerr << @3 << ": warning: task definition for \"" << $3
|
||||||
|
<< "\" has an empty port declaration list!" << endl;
|
||||||
|
delete[]$3;
|
||||||
|
}
|
||||||
|
|
||||||
| K_task automatic_opt IDENTIFIER error K_endtask
|
| K_task automatic_opt IDENTIFIER error K_endtask
|
||||||
{
|
{
|
||||||
pform_pop_scope();
|
pform_pop_scope();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue