Internals: Function return values act as vars, not wires.
This commit is contained in:
parent
ea61559ab5
commit
e0b2c46664
|
|
@ -867,11 +867,11 @@ class LinkDotFindVisitor : public AstNVisitor {
|
||||||
if (nodep->fvarp()
|
if (nodep->fvarp()
|
||||||
&& !VN_IS(nodep->fvarp(), Var)) {
|
&& !VN_IS(nodep->fvarp(), Var)) {
|
||||||
AstNodeDType* dtypep = VN_CAST(nodep->fvarp(), NodeDType);
|
AstNodeDType* dtypep = VN_CAST(nodep->fvarp(), NodeDType);
|
||||||
// If unspecified, function returns one bit; however when we support NEW() it could
|
// If unspecified, function returns one bit; however when we support NEW() it could
|
||||||
// also return the class reference.
|
// also return the class reference.
|
||||||
if (dtypep) dtypep->unlinkFrBack();
|
if (dtypep) dtypep->unlinkFrBack();
|
||||||
else dtypep = new AstBasicDType(nodep->fileline(), AstBasicDTypeKwd::LOGIC);
|
else dtypep = new AstBasicDType(nodep->fileline(), AstBasicDTypeKwd::LOGIC);
|
||||||
AstVar* newvarp = new AstVar(nodep->fileline(), AstVarType::WIRE, nodep->name(),
|
AstVar* newvarp = new AstVar(nodep->fileline(), AstVarType::VAR, nodep->name(),
|
||||||
VFlagChildDType(), dtypep); // Not dtype resolved yet
|
VFlagChildDType(), dtypep); // Not dtype resolved yet
|
||||||
newvarp->direction(VDirection::OUTPUT);
|
newvarp->direction(VDirection::OUTPUT);
|
||||||
newvarp->funcReturn(true);
|
newvarp->funcReturn(true);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue