Fix for br1015 : assertion failure when task/function port is an array.
This is an error for Verilog and not yet supported for SystemVerilog.
(cherry picked from commit e97883b1db)
This commit is contained in:
parent
2546631874
commit
dbcb7e5fb6
|
|
@ -757,6 +757,11 @@ void PTaskFunc::elaborate_sig_ports_(Design*des, NetScope*scope,
|
|||
<< "Function arguments must be input ports." << endl;
|
||||
des->errors += 1;
|
||||
}
|
||||
if (tmp->unpacked_dimensions() != 0) {
|
||||
cerr << get_fileline() << ": sorry: Subroutine ports with "
|
||||
"unpacked dimensions are not yet supported." << endl;
|
||||
des->errors += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
6
parse.y
6
parse.y
|
|
@ -2212,7 +2212,11 @@ tf_port_item /* IEEE1800-2005: A.2.7 */
|
|||
tmp = pform_make_task_ports(@3, use_port_type, $2, ilist);
|
||||
}
|
||||
if ($4 != 0) {
|
||||
pform_set_reg_idx(name, $4);
|
||||
if (gn_system_verilog()) {
|
||||
pform_set_reg_idx(name, $4);
|
||||
} else {
|
||||
yyerror(@4, "error: Task/function port with unpacked dimensions requires SystemVerilog.");
|
||||
}
|
||||
}
|
||||
|
||||
$$ = tmp;
|
||||
|
|
|
|||
Loading…
Reference in New Issue