Internals: Refactor 713dab27 to avoid IfaceRef being known in LinkCells
This commit is contained in:
parent
59fd238a05
commit
a247041cab
|
|
@ -2121,9 +2121,9 @@ public:
|
|||
bool isScBigUint() const VL_MT_STABLE;
|
||||
bool isScSensitive() const { return m_scSensitive; }
|
||||
bool isSigPublic() const;
|
||||
bool isSigModPublic() const { return m_sigModPublic; }
|
||||
bool isSigUserRdPublic() const { return m_sigUserRdPublic; }
|
||||
bool isSigUserRWPublic() const { return m_sigUserRWPublic; }
|
||||
bool isSigModPublic() const { return m_sigModPublic && !isIfaceRef(); }
|
||||
bool isSigUserRdPublic() const { return m_sigUserRdPublic && !isIfaceRef(); }
|
||||
bool isSigUserRWPublic() const { return m_sigUserRWPublic && !isIfaceRef(); }
|
||||
bool isTrace() const { return m_trace; }
|
||||
bool isRand() const { return m_rand.isRand(); }
|
||||
bool isRandC() const { return m_rand.isRandC(); }
|
||||
|
|
|
|||
|
|
@ -437,7 +437,8 @@ void AstNetlist::timeprecisionMerge(FileLine*, const VTimescale& value) {
|
|||
}
|
||||
|
||||
bool AstVar::isSigPublic() const {
|
||||
return (m_sigPublic || (v3Global.opt.allPublic() && !isTemp() && !isGenVar()));
|
||||
return (m_sigPublic || (v3Global.opt.allPublic() && !isTemp() && !isGenVar()))
|
||||
&& !isIfaceRef();
|
||||
}
|
||||
bool AstVar::isScQuad() const { return (isSc() && isQuad() && !isScBv() && !isScBigUint()); }
|
||||
bool AstVar::isScBv() const {
|
||||
|
|
|
|||
|
|
@ -430,23 +430,20 @@ class LinkParseVisitor final : public VNVisitor {
|
|||
VL_DO_DANGLING(nodep->unlinkFrBack()->deleteTree(), nodep);
|
||||
} else if (nodep->attrType() == VAttrType::VAR_PUBLIC) {
|
||||
UASSERT_OBJ(m_varp, nodep, "Attribute not attached to variable");
|
||||
// Public ifacerefs aren't supported - be compatible with older parser that ignored it
|
||||
if (!m_varp->isIfaceRef()) {
|
||||
m_varp->sigUserRWPublic(true);
|
||||
m_varp->sigModPublic(true);
|
||||
}
|
||||
m_varp->sigUserRWPublic(true);
|
||||
m_varp->sigModPublic(true);
|
||||
VL_DO_DANGLING(nodep->unlinkFrBack()->deleteTree(), nodep);
|
||||
} else if (nodep->attrType() == VAttrType::VAR_PUBLIC_FLAT) {
|
||||
UASSERT_OBJ(m_varp, nodep, "Attribute not attached to variable");
|
||||
if (!m_varp->isIfaceRef()) m_varp->sigUserRWPublic(true);
|
||||
m_varp->sigUserRWPublic(true);
|
||||
VL_DO_DANGLING(nodep->unlinkFrBack()->deleteTree(), nodep);
|
||||
} else if (nodep->attrType() == VAttrType::VAR_PUBLIC_FLAT_RD) {
|
||||
UASSERT_OBJ(m_varp, nodep, "Attribute not attached to variable");
|
||||
if (!m_varp->isIfaceRef()) m_varp->sigUserRdPublic(true);
|
||||
m_varp->sigUserRdPublic(true);
|
||||
VL_DO_DANGLING(nodep->unlinkFrBack()->deleteTree(), nodep);
|
||||
} else if (nodep->attrType() == VAttrType::VAR_PUBLIC_FLAT_RW) {
|
||||
UASSERT_OBJ(m_varp, nodep, "Attribute not attached to variable");
|
||||
if (!m_varp->isIfaceRef()) m_varp->sigUserRWPublic(true);
|
||||
m_varp->sigUserRWPublic(true);
|
||||
VL_DO_DANGLING(nodep->unlinkFrBack()->deleteTree(), nodep);
|
||||
} else if (nodep->attrType() == VAttrType::VAR_ISOLATE_ASSIGNMENTS) {
|
||||
UASSERT_OBJ(m_varp, nodep, "Attribute not attached to variable");
|
||||
|
|
|
|||
Loading…
Reference in New Issue