Fix dynamic new with init argument (#2325).
This commit is contained in:
parent
ff5465308b
commit
778f133118
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue