iverilog/ivtest/ivltests/br_ml20150321.v

90 lines
1.2 KiB
Verilog

// Regression test for bug reported by Niels Moeller on 21-Mar-2015 via
// iverilog-devel mailing list. Extended to cover similar problems. This
// is just testing compiler error recovery.
module test();
integer array[3:0];
integer i1;
always @* begin
for (i1 = 0; i1 < 4; i1 = i1 + 1) begin
array[i1] = undeclared;
end
end
integer i2;
always @* begin
for (i2 = 0; i2 < 4; i2 = i2 + 1) begin
undeclared = array[i2];
end
end
integer i3;
always @* begin
for (i3 = undeclared; i3 < 4; i3 = i3 + 1) begin
array[i3] = i3;
end
end
integer i4;
always @* begin
for (i4 = 0; i4 < undeclared; i4 = i4 + 1) begin
array[i4] = i4;
end
end
integer i5;
always @* begin
for (i5 = 0; i5 < 4; i5 = i5 + undeclared) begin
array[i5] = i5;
end
end
integer i6;
always @* begin
i6 = 0;
while (i6 < undeclared) begin
array[i6] = i6;
i6 = i6 + 1;
end
end
integer i7;
always @* begin
i7 = 0;
while (i7 < 4) begin
array[i7] = undeclared;
i7 = i7 + 1;
end
end
integer i8;
always @* begin
i8 = 0;
repeat (undeclared) begin
array[i8] = i8;
i8 = i8 + 1;
end
end
integer i9;
always @* begin
i9 = 0;
repeat (4) begin
array[i9] = undeclared;
i9 = i9 + 1;
end
end
endmodule