Merge pull request #1400 from larsclausen/fix-lval-indexed-part-invalid-base-crash
Handle invalid l-value indexed part select bases
This commit is contained in:
commit
f472a77e3a
|
|
@ -883,8 +883,10 @@ bool PEIdent::elaborate_lval_net_idx_(Design*des,
|
|||
calculate_up_do_width_(des, scope, wid);
|
||||
|
||||
NetExpr*base = elab_and_eval(des, scope, index_tail.msb, -1);
|
||||
if (!base)
|
||||
return false;
|
||||
|
||||
if (base && base->expr_type() == IVL_VT_REAL) {
|
||||
if (base->expr_type() == IVL_VT_REAL) {
|
||||
cerr << get_fileline() << ": error: Indexed part select base "
|
||||
"expression for ";
|
||||
cerr << lv->sig()->name() << "[" << *base;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
// Check that invalid indexed part-select l-value bases report an error.
|
||||
|
||||
module test;
|
||||
reg [31:0] a;
|
||||
|
||||
initial begin
|
||||
a[does_not_exist -: 2] = 2'b00;
|
||||
end
|
||||
endmodule
|
||||
|
|
@ -345,6 +345,7 @@ sv_lval_concat_uarray_fail1 vvp_tests/sv_lval_concat_uarray_fail1.json
|
|||
sv_lval_concat_uarray_fail2 vvp_tests/sv_lval_concat_uarray_fail2.json
|
||||
sv_lval_concat_uarray_fail3 vvp_tests/sv_lval_concat_uarray_fail3.json
|
||||
sv_lval_concat_uarray_fail4 vvp_tests/sv_lval_concat_uarray_fail4.json
|
||||
sv_lval_idx_part_invalid_base_down_fail vvp_tests/sv_lval_idx_part_invalid_base_down_fail.json
|
||||
sv_mixed_assign1 vvp_tests/sv_mixed_assign1.json
|
||||
sv_mixed_assign2 vvp_tests/sv_mixed_assign2.json
|
||||
sv_mixed_assign_error1 vvp_tests/sv_mixed_assign_error1.json
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"type" : "CE",
|
||||
"source" : "sv_lval_idx_part_invalid_base_down_fail.v",
|
||||
"iverilog-args" : [ "-g2001" ]
|
||||
}
|
||||
Loading…
Reference in New Issue