mirror of
https://github.com/verilator/verilator.git
synced 2026-10-02 16:13:34 +02:00
Fix dynamic new with init argument (#2325).
This commit is contained in:
+2
-3
@@ -3119,8 +3119,7 @@ private:
|
||||
iterateCheckSigned32(nodep, "new() size", nodep->sizep(), BOTH);
|
||||
}
|
||||
if (nodep->rhsp()) {
|
||||
iterateCheckTyped(nodep, "Dynamic array new RHS", nodep->rhsp(), adtypep->subDTypep(),
|
||||
BOTH);
|
||||
iterateCheckTyped(nodep, "Dynamic array new RHS", nodep->rhsp(), adtypep, BOTH);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5037,7 +5036,7 @@ private:
|
||||
void iterateCheckTyped(AstNode* nodep, const char* side, AstNode* underp,
|
||||
AstNodeDType* expDTypep, Stage stage) {
|
||||
if (stage & PRELIM) {
|
||||
underp = userIterateSubtreeReturnEdits(underp, WidthVP(SELF, PRELIM).p());
|
||||
underp = userIterateSubtreeReturnEdits(underp, WidthVP(expDTypep, PRELIM).p());
|
||||
}
|
||||
if (stage & FINAL) {
|
||||
underp = iterateCheck(nodep, side, underp, SELF, FINAL, expDTypep, EXTEND_EXP);
|
||||
|
||||
@@ -126,6 +126,13 @@ module t (/*AUTOARG*/
|
||||
`checkh(b[2], 0);
|
||||
`checkh(b[3], 0);
|
||||
|
||||
a = new[4] ('{8'd1,8'd2,8'd3,8'd4});
|
||||
`checkh(a.size, 4);
|
||||
`checkh(a[0], 1);
|
||||
`checkh(a[1], 2);
|
||||
`checkh(a[2], 3);
|
||||
`checkh(a[3], 4);
|
||||
|
||||
// test wide dynamic array
|
||||
p256 = new [11];
|
||||
`checkh(p256.size, 11);
|
||||
|
||||
Reference in New Issue
Block a user