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);
|
iterateCheckSigned32(nodep, "new() size", nodep->sizep(), BOTH);
|
||||||
}
|
}
|
||||||
if (nodep->rhsp()) {
|
if (nodep->rhsp()) {
|
||||||
iterateCheckTyped(nodep, "Dynamic array new RHS", nodep->rhsp(), adtypep->subDTypep(),
|
iterateCheckTyped(nodep, "Dynamic array new RHS", nodep->rhsp(), adtypep, BOTH);
|
||||||
BOTH);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5037,7 +5036,7 @@ private:
|
||||||
void iterateCheckTyped(AstNode* nodep, const char* side, AstNode* underp,
|
void iterateCheckTyped(AstNode* nodep, const char* side, AstNode* underp,
|
||||||
AstNodeDType* expDTypep, Stage stage) {
|
AstNodeDType* expDTypep, Stage stage) {
|
||||||
if (stage & PRELIM) {
|
if (stage & PRELIM) {
|
||||||
underp = userIterateSubtreeReturnEdits(underp, WidthVP(SELF, PRELIM).p());
|
underp = userIterateSubtreeReturnEdits(underp, WidthVP(expDTypep, PRELIM).p());
|
||||||
}
|
}
|
||||||
if (stage & FINAL) {
|
if (stage & FINAL) {
|
||||||
underp = iterateCheck(nodep, side, underp, SELF, FINAL, expDTypep, EXTEND_EXP);
|
underp = iterateCheck(nodep, side, underp, SELF, FINAL, expDTypep, EXTEND_EXP);
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,13 @@ module t (/*AUTOARG*/
|
||||||
`checkh(b[2], 0);
|
`checkh(b[2], 0);
|
||||||
`checkh(b[3], 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
|
// test wide dynamic array
|
||||||
p256 = new [11];
|
p256 = new [11];
|
||||||
`checkh(p256.size, 11);
|
`checkh(p256.size, 11);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue