Fix interface inside generate, bug1001, bug1003.

Signed-off-by: Wilson Snyder <[email protected]>
This commit is contained in:
Todd Strader
2015-12-05 19:39:40 -05:00
committed by Wilson Snyder
parent f0af8726e3
commit 5e54d3e41a
27 changed files with 832 additions and 31 deletions
+2 -1
View File
@@ -352,13 +352,14 @@ private:
AstIfaceRefDType* idtypep = new AstIfaceRefDType(nodep->fileline(), nodep->name(),
nodep->modp()->name());
idtypep->ifacep(NULL); // cellp overrides
// In the case of arrayed interfaces, we replace cellp when de-arraying in V3Inst
idtypep->cellp(nodep); // Only set when real parent cell known.
AstVar* varp;
if (nodep->rangep()) {
AstNodeArrayDType* arrp = new AstUnpackArrayDType(nodep->fileline(),VFlagChildDType(), idtypep, nodep->rangep()->cloneTree(true));
varp = new AstVar(nodep->fileline(), AstVarType::IFACEREF, varName,
VFlagChildDType(), arrp);
} else {
idtypep->cellp(nodep); // Only set when real parent cell known
varp = new AstVar(nodep->fileline(), AstVarType::IFACEREF, varName,
VFlagChildDType(), idtypep);
}